diff --git a/docs/en_US/release_notes_4_18.rst b/docs/en_US/release_notes_4_18.rst index 1b4be89c7..4e3f13ca8 100644 --- a/docs/en_US/release_notes_4_18.rst +++ b/docs/en_US/release_notes_4_18.rst @@ -13,6 +13,7 @@ New features Housekeeping ************ +| `Issue #5071 `_ - Improve the test framework to run for multiple classes defined in a single file. Bug fixes ********* diff --git a/web/pgadmin/utils/route.py b/web/pgadmin/utils/route.py index 5919f27b2..35493e95d 100644 --- a/web/pgadmin/utils/route.py +++ b/web/pgadmin/utils/route.py @@ -48,7 +48,12 @@ class TestsGeneratorRegistry(ABCMeta): # Avoid registering the BaseDriver itself if name != 'BaseTestGenerator' and name != 'BaseFeatureTest': - TestsGeneratorRegistry.registry[d['__module__']] = cls + # Store/append test classes in 'registry' if test modules has + # multiple classes + if d['__module__'] in TestsGeneratorRegistry.registry: + TestsGeneratorRegistry.registry[d['__module__']].append(cls) + else: + TestsGeneratorRegistry.registry[d['__module__']] = [cls] ABCMeta.__init__(cls, name, bases, d) diff --git a/web/regression/runtests.py b/web/regression/runtests.py index 735a6dd5d..ef5b46328 100644 --- a/web/regression/runtests.py +++ b/web/regression/runtests.py @@ -150,8 +150,10 @@ def get_suite(module_list, test_server, test_app_client, server_information, # Get the each test module and add into list for key, klass in module_list: - gen = klass - modules.append(gen) + # Separate each test class from list of classes and store in modules + for item in klass: + gen = item + modules.append(gen) # Set the test client to each module & generate the scenarios for module in modules: