Skip to content

add support for passing valid unittest options to test suite #3790

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 1, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions test/framework/asyncprocess.py
Original file line number Diff line number Diff line change
@@ -67,9 +67,12 @@ def tearDown(self):
super().tearDown()


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(AsyncProcessTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(AsyncProcessTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(AsyncProcessTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/build_log.py
Original file line number Diff line number Diff line change
@@ -438,9 +438,12 @@ def test_raise_nosupport(self):
raise_nosupport, 'foobar', 42)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(BuildLogTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(BuildLogTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(BuildLogTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/config.py
Original file line number Diff line number Diff line change
@@ -730,8 +730,11 @@ def test_update_build_options(self):
self.assertEqual(build_option('pr_target_account'), 'easybuilders')


def suite():
return TestLoaderFiltered().loadTestsFromTestCase(EasyBuildConfigTest, sys.argv[1:])
def suite(loader=None):
if loader:
return loader.loadTestsFromTestCase(EasyBuildConfigTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyBuildConfigTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/containers.py
Original file line number Diff line number Diff line change
@@ -509,9 +509,12 @@ def test_container_config_template_recipe(self):
self.assertEqual(cont_recipe, expected)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(ContainersTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(ContainersTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(ContainersTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/docs.py
Original file line number Diff line number Diff line change
@@ -1407,9 +1407,12 @@ def get_eb_help_output(arg=''):
self.assertTrue(regex.search(txt_rst), "Pattern '%s' should be found in: %s" % (regex.pattern, txt_rst))


def suite():
def suite(loader=None):
""" returns all test cases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(DocsTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(DocsTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(DocsTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easyblock.py
Original file line number Diff line number Diff line change
@@ -3593,9 +3593,12 @@ def custom_step(self):
self.assertIn('Ran custom', logtxt)


def suite():
def suite(loader=None):
""" return all the tests in this file """
return TestLoaderFiltered().loadTestsFromTestCase(EasyBlockTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyBlockTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyBlockTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easyconfig.py
Original file line number Diff line number Diff line change
@@ -5257,9 +5257,12 @@ def test_templates(self):
self.assertRegex(stderr.getvalue(), regex)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyConfigTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easyconfigformat.py
Original file line number Diff line number Diff line change
@@ -46,9 +46,12 @@ def test_parser_version_regex(self):
self.assertEqual(version['minor'], int(res['minor']))


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigFormatTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyConfigFormatTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigFormatTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easyconfigparser.py
Original file line number Diff line number Diff line change
@@ -222,9 +222,12 @@ def test_check_value_types(self):
self.assertEqual(ecdict['version'], '1.4')


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigParserTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyConfigParserTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigParserTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easyconfigversion.py
Original file line number Diff line number Diff line change
@@ -285,9 +285,12 @@ def test_hashing(self):
self.assertTrue(hash(test_case))


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigVersion, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyConfigVersion)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyConfigVersion, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/easystack.py
Original file line number Diff line number Diff line change
@@ -204,9 +204,12 @@ def test_check_value(self):
self.assertErrorRegex(EasyBuildError, error_pattern, check_value, version, context)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EasyStackTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EasyStackTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyStackTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/ebconfigobj.py
Original file line number Diff line number Diff line change
@@ -279,9 +279,12 @@ def test_ebconfigobj(self):
self.assertEqual(res, {'foo': 'bar'})


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(TestEBConfigObj, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(TestEBConfigObj)
else:
return TestLoaderFiltered().loadTestsFromTestCase(TestEBConfigObj, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/environment.py
Original file line number Diff line number Diff line change
@@ -162,9 +162,12 @@ def test_sanitize_env(self):
self.assertEqual(os.getenv('LD_PRELOAD'), None)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(EnvironmentTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(EnvironmentTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EnvironmentTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/filetools.py
Original file line number Diff line number Diff line change
@@ -4159,9 +4159,12 @@ def expected_suffix(n_calls_to_create_non_existing_paths):
ft.remove_dir(test_root)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(FileToolsTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(FileToolsTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(FileToolsTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/format_convert.py
Original file line number Diff line number Diff line change
@@ -60,9 +60,12 @@ def test_dependency(self):
self.assertEqual(str(res), txt)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(ConvertTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(ConvertTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(ConvertTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/general.py
Original file line number Diff line number Diff line change
@@ -155,9 +155,12 @@ def test_import_available_modules(self):
self.assertEqual([test123.one, test123.three, test123.two], res)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(GeneralTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(GeneralTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(GeneralTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/github.py
Original file line number Diff line number Diff line change
@@ -1459,9 +1459,12 @@ def test_is_patch_for(self):
self.assertTrue(is_patch_for('ext_foo-1.2.3.patch', ec))


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(GithubTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(GithubTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(GithubTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/hooks.py
Original file line number Diff line number Diff line change
@@ -324,9 +324,12 @@ def install_hook(self):
self.assertErrorRegex(EasyBuildError, error_msg_pattern, load_hooks, test_broken_hooks_pymod)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(HooksTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(HooksTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(HooksTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/include.py
Original file line number Diff line number Diff line change
@@ -258,9 +258,12 @@ def test_is_software_specific_easyblock(self):
self.assertFalse(is_software_specific_easyblock(os.path.join(test_easyblocks, 'generic', 'toolchain.py')))


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(IncludeTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(IncludeTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(IncludeTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/lib.py
Original file line number Diff line number Diff line change
@@ -135,8 +135,11 @@ def test_modules_tool(self):
self.assertEqual(modtool.list(), [{'default': None, 'mod_name': 'GCC/6.4.0-2.28'}])


def suite():
return TestLoaderFiltered().loadTestsFromTestCase(EasyBuildLibTest, sys.argv[1:])
def suite(loader=None):
if loader:
return loader.loadTestsFromTestCase(EasyBuildLibTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(EasyBuildLibTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/license.py
Original file line number Diff line number Diff line change
@@ -66,9 +66,12 @@ def test_licenses(self):
self.assertTrue(issubclass(lics[lic], License))


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(LicenseTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(LicenseTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(LicenseTest, sys.argv[1:])


if __name__ == '__main__':
11 changes: 8 additions & 3 deletions test/framework/module_generator.py
Original file line number Diff line number Diff line change
@@ -1757,11 +1757,16 @@ class LuaModuleGeneratorTest(ModuleGeneratorTest):
MODULE_GENERATOR_CLASS = ModuleGeneratorLua


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
if loader:
args = []
else:
loader = TestLoaderFiltered()
args = [sys.argv[1:]]
suite = TestSuite()
suite.addTests(TestLoaderFiltered().loadTestsFromTestCase(TclModuleGeneratorTest, sys.argv[1:]))
suite.addTests(TestLoaderFiltered().loadTestsFromTestCase(LuaModuleGeneratorTest, sys.argv[1:]))
suite.addTests(loader.loadTestsFromTestCase(TclModuleGeneratorTest, *args))
suite.addTests(loader.loadTestsFromTestCase(LuaModuleGeneratorTest, *args))
return suite


7 changes: 5 additions & 2 deletions test/framework/modules.py
Original file line number Diff line number Diff line change
@@ -2056,9 +2056,12 @@ def test_module_load_environment(self):
self.assertErrorRegex(EasyBuildError, error_pattern, mod.ModuleLoadEnvironment, aliases=['some', 'list'])


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(ModulesTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(ModulesTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(ModulesTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/modulestool.py
Original file line number Diff line number Diff line change
@@ -259,9 +259,12 @@ def tearDown(self):
os.environ.pop('module', None)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(ModulesToolTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(ModulesToolTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(ModulesToolTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/options.py
Original file line number Diff line number Diff line change
@@ -7463,9 +7463,12 @@ def test_opts_dict_to_eb_opts(self):
self.assertEqual(opts_dict_to_eb_opts(opts_dict), expected)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(CommandLineOptionsTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(CommandLineOptionsTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(CommandLineOptionsTest, sys.argv[1:])


if __name__ == '__main__':
7 changes: 5 additions & 2 deletions test/framework/output.py
Original file line number Diff line number Diff line change
@@ -204,9 +204,12 @@ def test_get_start_update_stop_progress_bar(self):
stop_progress_bar(PROGRESS_BAR_EXTENSIONS)


def suite():
def suite(loader=None):
""" returns all the testcases in this module """
return TestLoaderFiltered().loadTestsFromTestCase(OutputTest, sys.argv[1:])
if loader:
return loader.loadTestsFromTestCase(OutputTest)
else:
return TestLoaderFiltered().loadTestsFromTestCase(OutputTest, sys.argv[1:])


if __name__ == '__main__':
Loading