Skip to content

Commit

Permalink
Initial take on importlib.test.loader_tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
brettcannon committed Jan 27, 2009
1 parent 73662a5 commit a74ccea
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 8 deletions.
13 changes: 5 additions & 8 deletions Lib/importlib/NOTES
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
61 changes: 61 additions & 0 deletions Lib/importlib/test/loader_tests.py
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit a74ccea

Please sign in to comment.