From 0e9319ef691cd7363dc90c79af2b03a6bb7f4c3f Mon Sep 17 00:00:00 2001 From: haoranchen Date: Tue, 25 Feb 2025 15:40:08 +0800 Subject: [PATCH] Revert "refactor: implement dynamic loading of test case classes" --- tests/army/test.py | 30 +++++++++--------------------- tests/develop-test/test.py | 26 ++++++-------------------- tests/pytest/util/cases.py | 25 ++++--------------------- tests/system-test/test.py | 30 +++++++++--------------------- tests/test_new/test.py | 30 +++++++++--------------------- 5 files changed, 37 insertions(+), 104 deletions(-) diff --git a/tests/army/test.py b/tests/army/test.py index bf14f19e3f..d37d08b406 100644 --- a/tests/army/test.py +++ b/tests/army/test.py @@ -24,7 +24,6 @@ import platform import socket import threading import importlib -import inspect import toml @@ -57,17 +56,6 @@ def checkRunTimeError(): if hwnd: os.system("TASKKILL /F /IM taosd.exe") -def get_local_classes(module): - classes = [] - for name, obj in inspect.getmembers(module, inspect.isclass): - if inspect.getmodule(obj) == module: - classes.append(name) - return classes - -def dynamicLoadModule(fileName): - moduleName = fileName.replace(".py", "").replace(os.sep, ".") - return importlib.import_module(moduleName, package='..') - # # run case on previous cluster # @@ -78,9 +66,9 @@ def runOnPreviousCluster(host, config, fileName): sep = "/" if platform.system().lower() == 'windows': sep = os.sep - uModule = dynamicLoadModule(fileName) - case_class = getattr(uModule, get_local_classes(uModule)[0]) - case = case_class() + moduleName = fileName.replace(".py", "").replace(sep, ".") + uModule = importlib.import_module(moduleName) + case = uModule.TDTestCase() # create conn conn = taos.connect(host, config) @@ -370,10 +358,10 @@ if __name__ == "__main__": updateCfgDictStr = '' # adapter_cfg_dict_str = '' if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace(os.sep, ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if ((json.dumps(updateCfgDict) == '{}') and hasattr(ucase, 'updatecfgDict')): updateCfgDict = ucase.updatecfgDict updateCfgDictStr = "-d %s"%base64.b64encode(json.dumps(updateCfgDict).encode()).decode() @@ -542,10 +530,10 @@ if __name__ == "__main__": except: pass if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace("/", ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if (json.dumps(updateCfgDict) == '{}'): updateCfgDict = ucase.updatecfgDict if (json.dumps(adapter_cfg_dict) == '{}'): diff --git a/tests/develop-test/test.py b/tests/develop-test/test.py index 9106e38d9a..6b1c63a1c0 100644 --- a/tests/develop-test/test.py +++ b/tests/develop-test/test.py @@ -22,9 +22,6 @@ import json import platform import socket import threading -import inspect -import importlib -import os import toml @@ -60,17 +57,6 @@ def checkRunTimeError(): os.system("TASKKILL /F /IM taosd.exe") -def get_local_classes(module): - classes = [] - for name, obj in inspect.getmembers(module, inspect.isclass): - if inspect.getmodule(obj) == module: - classes.append(name) - return classes - -def dynamicLoadModule(fileName): - moduleName = fileName.replace(".py", "").replace(os.sep, ".") - return importlib.import_module(moduleName, package='..') - if __name__ == "__main__": fileName = "all" @@ -309,10 +295,10 @@ if __name__ == "__main__": updateCfgDictStr = "" # adapter_cfg_dict_str = '' if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace(os.sep, ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if (json.dumps(updateCfgDict) == "{}") and hasattr( ucase, "updatecfgDict" ): @@ -448,10 +434,10 @@ if __name__ == "__main__": except: pass if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace("/", ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if json.dumps(updateCfgDict) == "{}": updateCfgDict = ucase.updatecfgDict if json.dumps(adapter_cfg_dict) == "{}": diff --git a/tests/pytest/util/cases.py b/tests/pytest/util/cases.py index 4899bedc69..eee8809ad0 100644 --- a/tests/pytest/util/cases.py +++ b/tests/pytest/util/cases.py @@ -51,13 +51,6 @@ class TDCases: def addCluster(self, name, case): self.clusterCases.append(TDCase(name, case)) - def get_local_classes(self, module): - classes = [] - for name, obj in inspect.getmembers(module, inspect.isclass): - if inspect.getmodule(obj) == module: - classes.append(name) - return classes - def runAllLinux(self, conn): # TODO: load all Linux cases here runNum = 0 @@ -78,10 +71,7 @@ class TDCases: runNum = 0 for tmp in self.linuxCases: if tmp.name.find(fileName) != -1: - # get the last class name as the test case class name - case_class = getattr(testModule, self.get_local_classes(testModule)[0]) - - case = case_class() + case = testModule.TDTestCase() case.init(conn, self._logSql, replicaVar) try: case.run() @@ -113,9 +103,7 @@ class TDCases: runNum = 0 for tmp in self.windowsCases: if tmp.name.find(fileName) != -1: - # get the last class name as the test case class name - case_class = getattr(testModule, self.get_local_classes(testModule)[0]) - case = case_class() + case = testModule.TDTestCase() case.init(conn, self._logSql,replicaVar) try: case.run() @@ -129,15 +117,12 @@ class TDCases: def runAllCluster(self): # TODO: load all cluster case module here - testModule = self.__dynamicLoadModule(fileName) runNum = 0 for tmp in self.clusterCases: if tmp.name.find(fileName) != -1: tdLog.notice("run cases like %s" % (fileName)) - # get the last class name as the test case class name - case_class = getattr(testModule, self.get_local_classes(testModule)[0]) - case = case_class() + case = testModule.TDTestCase() case.init() case.run() case.stop() @@ -153,9 +138,7 @@ class TDCases: for tmp in self.clusterCases: if tmp.name.find(fileName) != -1: tdLog.notice("run cases like %s" % (fileName)) - # get the last class name as the test case class name - case_class = getattr(testModule, self.get_local_classes(testModule)[0]) - case = case_class() + case = testModule.TDTestCase() case.init() case.run() case.stop() diff --git a/tests/system-test/test.py b/tests/system-test/test.py index a05eed5a3c..ab1bdc21d3 100644 --- a/tests/system-test/test.py +++ b/tests/system-test/test.py @@ -24,7 +24,6 @@ import platform import socket import threading import importlib -import inspect print(f"Python version: {sys.version}") print(f"Version info: {sys.version_info}") @@ -59,16 +58,6 @@ def checkRunTimeError(): if hwnd: os.system("TASKKILL /F /IM taosd.exe") -def get_local_classes(module): - classes = [] - for name, obj in inspect.getmembers(module, inspect.isclass): - if inspect.getmodule(obj) == module: - classes.append(name) - return classes - -def dynamicLoadModule(fileName): - moduleName = fileName.replace(".py", "").replace(os.sep, ".") - return importlib.import_module(moduleName, package='..') # # run case on previous cluster # @@ -79,10 +68,9 @@ def runOnPreviousCluster(host, config, fileName): sep = "/" if platform.system().lower() == 'windows': sep = os.sep - uModule = dynamicLoadModule(fileName) - - case_class = getattr(uModule, get_local_classes(uModule)[0]) - case = case_class() + moduleName = fileName.replace(".py", "").replace(sep, ".") + uModule = importlib.import_module(moduleName) + case = uModule.TDTestCase() # create conn conn = taos.connect(host, config) @@ -362,10 +350,10 @@ if __name__ == "__main__": updateCfgDictStr = '' # adapter_cfg_dict_str = '' if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace(os.sep, ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if ((json.dumps(updateCfgDict) == '{}') and hasattr(ucase, 'updatecfgDict')): updateCfgDict = ucase.updatecfgDict updateCfgDictStr = "-d %s"%base64.b64encode(json.dumps(updateCfgDict).encode()).decode() @@ -534,10 +522,10 @@ if __name__ == "__main__": except: pass if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace("/", ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if (json.dumps(updateCfgDict) == '{}'): updateCfgDict = ucase.updatecfgDict if (json.dumps(adapter_cfg_dict) == '{}'): diff --git a/tests/test_new/test.py b/tests/test_new/test.py index a05eed5a3c..ab1bdc21d3 100644 --- a/tests/test_new/test.py +++ b/tests/test_new/test.py @@ -24,7 +24,6 @@ import platform import socket import threading import importlib -import inspect print(f"Python version: {sys.version}") print(f"Version info: {sys.version_info}") @@ -59,16 +58,6 @@ def checkRunTimeError(): if hwnd: os.system("TASKKILL /F /IM taosd.exe") -def get_local_classes(module): - classes = [] - for name, obj in inspect.getmembers(module, inspect.isclass): - if inspect.getmodule(obj) == module: - classes.append(name) - return classes - -def dynamicLoadModule(fileName): - moduleName = fileName.replace(".py", "").replace(os.sep, ".") - return importlib.import_module(moduleName, package='..') # # run case on previous cluster # @@ -79,10 +68,9 @@ def runOnPreviousCluster(host, config, fileName): sep = "/" if platform.system().lower() == 'windows': sep = os.sep - uModule = dynamicLoadModule(fileName) - - case_class = getattr(uModule, get_local_classes(uModule)[0]) - case = case_class() + moduleName = fileName.replace(".py", "").replace(sep, ".") + uModule = importlib.import_module(moduleName) + case = uModule.TDTestCase() # create conn conn = taos.connect(host, config) @@ -362,10 +350,10 @@ if __name__ == "__main__": updateCfgDictStr = '' # adapter_cfg_dict_str = '' if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace(os.sep, ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if ((json.dumps(updateCfgDict) == '{}') and hasattr(ucase, 'updatecfgDict')): updateCfgDict = ucase.updatecfgDict updateCfgDictStr = "-d %s"%base64.b64encode(json.dumps(updateCfgDict).encode()).decode() @@ -534,10 +522,10 @@ if __name__ == "__main__": except: pass if is_test_framework: - uModule = dynamicLoadModule(fileName) + moduleName = fileName.replace(".py", "").replace("/", ".") + uModule = importlib.import_module(moduleName) try: - case_class = getattr(uModule, get_local_classes(uModule)[0]) - ucase = case_class() + ucase = uModule.TDTestCase() if (json.dumps(updateCfgDict) == '{}'): updateCfgDict = ucase.updatecfgDict if (json.dumps(adapter_cfg_dict) == '{}'):