diff options
author | Brett Cannon <bcannon@gmail.com> | 2009-01-27 02:39:33 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2009-01-27 02:39:33 (GMT) |
commit | a74ccea968a943e80812901da20fce79726fdee9 (patch) | |
tree | 44d8f42f4c4a6ed9525b04e1b2b7ff7f955fefa5 /Lib/importlib | |
parent | 73662a54f59e34e843351756dace90f5c046c1ca (diff) | |
download | cpython-a74ccea968a943e80812901da20fce79726fdee9.zip cpython-a74ccea968a943e80812901da20fce79726fdee9.tar.gz cpython-a74ccea968a943e80812901da20fce79726fdee9.tar.bz2 |
Initial take on importlib.test.loader_tests.
Diffstat (limited to 'Lib/importlib')
-rw-r--r-- | Lib/importlib/NOTES | 13 | ||||
-rw-r--r-- | Lib/importlib/test/loader_tests.py | 61 |
2 files changed, 66 insertions, 8 deletions
diff --git a/Lib/importlib/NOTES b/Lib/importlib/NOTES index 68e24fd..4c2e707 100644 --- a/Lib/importlib/NOTES +++ b/Lib/importlib/NOTES @@ -1,15 +1,12 @@ to do ///// -* Standardized loader tests. +* Use test.loader_tests - + Create test.loader_tests. - + Use - - - builtin - - frozen - - extension - -source + + builtin + + frozen + + extension + + source * Reorganize support code. diff --git a/Lib/importlib/test/loader_tests.py b/Lib/importlib/test/loader_tests.py new file mode 100644 index 0000000..15faf0b --- /dev/null +++ b/Lib/importlib/test/loader_tests.py @@ -0,0 +1,61 @@ +import abc +import unittest + + +class LoaderTests(unittest.TestCase, metaclass=abc.ABCMeta): + + @abc.abstractmethod + def test_module(self): + """A module should load without issue. + + After the loader returns the module should be in sys.modules. + + Attributes to verify: + + * __file__ + * __loader__ + * __name__ + * No __path__ + + """ + pass + + @abc.abstractmethod + def test_package(self): + """Loading a package should work. + + After the loader returns the module should be in sys.modules. + + Attributes to verify: + + * __file__ + * __loader__ + * __name__ + * __path__ + + """ + pass + + @abc.abstractmethod + def test_lacking_parent(self): + """A loader should not be dependent on it's parent package being + imported.""" + pass + + @abc.abstractmethod + def test_module_reuse(self): + """If a module is already in sys.modules, it should be reused.""" + pass + + @abc.abstractmethod + def test_state_after_failure(self): + """If a module is already in sys.modules and a reload fails + (e.g. a SyntaxError), the module should be in the state it was before + the reload began.""" + pass + + @abc.abstractmethod + def test_unloadable(self): + """Test ImportError is raised when the loader is asked to load a module + it can't.""" + pass |