Skip to content

Instantly share code, notes, and snippets.

@evilchili
Created March 28, 2016 23:19
Show Gist options
  • Save evilchili/09d4af2feaba90fdfc27 to your computer and use it in GitHub Desktop.
Save evilchili/09d4af2feaba90fdfc27 to your computer and use it in GitHub Desktop.
dynamic loading of modules at test time
def load_all_submodules():
checks = []
for module in os.listdir(pkg_resources.resource_filename(__name__, '../this_package/submodules')):
if module == '__init__.py' or module[-3:] != '.py':
continue
checks.append(importlib.import_module('this_package.submodules.{}'.format(module[:-3])))
return checks
def all_subclasses(myclass):
def get(c):
print c
return c.__subclasses__() + [
x for subclass in c.__subclasses__() for x in all_subclasses(subclass)
]
return get(myclass)
submodules = load_all_submodules()
subclasses = all_subclasses(TheBaseClass)
@pytest.mark.parametrize('subclass', subclasses, ids=subclasses)
def test_something_on_all_subclasses(subclass):
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment