diff options
author | Mariano Lopez <mariano.lopez@linux.intel.com> | 2017-02-27 07:45:01 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-03-01 15:50:19 +0000 |
commit | d9548f981448307b042807373e469f0d0b110bfe (patch) | |
tree | 858b9b62a4ca886561e646187cb727e5d20daea2 | |
parent | d6ff4891376417504018af27e8e729a412feeeea (diff) | |
download | openembedded-core-d9548f981448307b042807373e469f0d0b110bfe.tar.gz openembedded-core-d9548f981448307b042807373e469f0d0b110bfe.tar.bz2 openembedded-core-d9548f981448307b042807373e469f0d0b110bfe.zip |
oeqa/core/loader.py: Avoid importing tests with built-ins name
If importing a test with the same name as a built-in module,
it will silently import the built-in and check for tests in
built-in module. This happened with syslog module in debian
based machines, so add a raise to avoid this behavior.
[YOCTO #10978]
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | meta/lib/oeqa/core/loader.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py index b9ba9235af..74f1117825 100644 --- a/meta/lib/oeqa/core/loader.py +++ b/meta/lib/oeqa/core/loader.py @@ -216,6 +216,13 @@ class OETestLoader(unittest.TestLoader): # use_load_tests deprecation via *args and **kws. See issue 16662. if sys.version_info >= (3,5): def loadTestsFromModule(self, module, *args, pattern=None, **kws): + """ + Returns a suite of all tests cases contained in module. + """ + if module.__name__ in sys.builtin_module_names: + msg = 'Tried to import %s test module but is a built-in' + raise ImportError(msg % module.__name__) + if not self.modules or "all" in self.modules or \ module.__name__ in self.modules: return super(OETestLoader, self).loadTestsFromModule( @@ -227,6 +234,10 @@ class OETestLoader(unittest.TestLoader): """ Returns a suite of all tests cases contained in module. """ + if module.__name__ in sys.builtin_module_names: + msg = 'Tried to import %s test module but is a built-in' + raise ImportError(msg % module.__name__) + if not self.modules or "all" in self.modules or \ module.__name__ in self.modules: return super(OETestLoader, self).loadTestsFromModule( |