From ed279cac31575891ab195823cdf2593b1e601871 Mon Sep 17 00:00:00 2001 From: Pradip Parkale Date: Fri, 10 Jan 2020 11:48:36 +0530 Subject: [PATCH] =?UTF-8?q?Improve=20the=20test=20framework=C2=A0to=20run?= =?UTF-8?q?=20for=20multiple=20classes=20defined=20in=20a=20single=20file.?= =?UTF-8?q?=20Fixes=20#5071.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en_US/release_notes_4_18.rst | 1 + web/pgadmin/utils/route.py | 7 ++++++- web/regression/runtests.py | 6 ++++-- 3 files changed, 11 insertions(+), 3 deletions(-) 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: