refactor: simplify module loading by introducing dynamicLoadModule function
This commit is contained in:
parent
7bbc42aa30
commit
67c06cc02b
|
@ -369,8 +369,7 @@ if __name__ == "__main__":
|
||||||
updateCfgDictStr = ''
|
updateCfgDictStr = ''
|
||||||
# adapter_cfg_dict_str = ''
|
# adapter_cfg_dict_str = ''
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace(os.sep, ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
@ -542,8 +541,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace("/", ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
|
|
@ -22,6 +22,9 @@ import json
|
||||||
import platform
|
import platform
|
||||||
import socket
|
import socket
|
||||||
import threading
|
import threading
|
||||||
|
import inspect
|
||||||
|
import importlib
|
||||||
|
import os
|
||||||
|
|
||||||
import toml
|
import toml
|
||||||
|
|
||||||
|
@ -56,6 +59,17 @@ def checkRunTimeError():
|
||||||
if hwnd:
|
if hwnd:
|
||||||
os.system("TASKKILL /F /IM taosd.exe")
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
@ -295,8 +309,7 @@ if __name__ == "__main__":
|
||||||
updateCfgDictStr = ""
|
updateCfgDictStr = ""
|
||||||
# adapter_cfg_dict_str = ''
|
# adapter_cfg_dict_str = ''
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace(os.sep, ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
@ -435,8 +448,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace("/", ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
|
|
@ -147,8 +147,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace(os.sep, ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
ucase = uModule.TDTestCase()
|
ucase = uModule.TDTestCase()
|
||||||
tdDnodes.deploy(1,ucase.updatecfgDict)
|
tdDnodes.deploy(1,ucase.updatecfgDict)
|
||||||
|
@ -181,8 +180,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace("/", ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
ucase = uModule.TDTestCase()
|
ucase = uModule.TDTestCase()
|
||||||
tdDnodes.deploy(1,ucase.updatecfgDict)
|
tdDnodes.deploy(1,ucase.updatecfgDict)
|
||||||
|
|
|
@ -63,7 +63,9 @@ class TDCases:
|
||||||
runNum = 0
|
runNum = 0
|
||||||
for tmp in self.linuxCases:
|
for tmp in self.linuxCases:
|
||||||
if tmp.name.find(fileName) != -1:
|
if tmp.name.find(fileName) != -1:
|
||||||
case = testModule.TDTestCase()
|
# 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.init(conn)
|
case.init(conn)
|
||||||
case.run()
|
case.run()
|
||||||
case.stop()
|
case.stop()
|
||||||
|
@ -98,7 +100,9 @@ class TDCases:
|
||||||
runNum = 0
|
runNum = 0
|
||||||
for tmp in self.windowsCases:
|
for tmp in self.windowsCases:
|
||||||
if tmp.name.find(fileName) != -1:
|
if tmp.name.find(fileName) != -1:
|
||||||
case = testModule.TDTestCase()
|
# get the last class name as the test case class name
|
||||||
|
case_class = getattr(testModule, self.get_local_classes(testModule)[-1])
|
||||||
|
case = case_class()
|
||||||
case.init(conn)
|
case.init(conn)
|
||||||
case.run()
|
case.run()
|
||||||
case.stop()
|
case.stop()
|
||||||
|
|
|
@ -24,6 +24,7 @@ import platform
|
||||||
import socket
|
import socket
|
||||||
import threading
|
import threading
|
||||||
import importlib
|
import importlib
|
||||||
|
import inspect
|
||||||
print(f"Python version: {sys.version}")
|
print(f"Python version: {sys.version}")
|
||||||
print(f"Version info: {sys.version_info}")
|
print(f"Version info: {sys.version_info}")
|
||||||
|
|
||||||
|
@ -58,6 +59,17 @@ def checkRunTimeError():
|
||||||
if hwnd:
|
if hwnd:
|
||||||
os.system("TASKKILL /F /IM taosd.exe")
|
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
|
# run case on previous cluster
|
||||||
#
|
#
|
||||||
|
@ -69,7 +81,6 @@ def runOnPreviousCluster(host, config, fileName):
|
||||||
if platform.system().lower() == 'windows':
|
if platform.system().lower() == 'windows':
|
||||||
sep = os.sep
|
sep = os.sep
|
||||||
uModule = dynamicLoadModule(fileName)
|
uModule = dynamicLoadModule(fileName)
|
||||||
|
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
case = case_class()
|
case = case_class()
|
||||||
|
|
||||||
|
@ -351,8 +362,7 @@ if __name__ == "__main__":
|
||||||
updateCfgDictStr = ''
|
updateCfgDictStr = ''
|
||||||
# adapter_cfg_dict_str = ''
|
# adapter_cfg_dict_str = ''
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace(os.sep, ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
@ -524,8 +534,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace("/", ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
|
|
@ -24,6 +24,7 @@ import platform
|
||||||
import socket
|
import socket
|
||||||
import threading
|
import threading
|
||||||
import importlib
|
import importlib
|
||||||
|
import inspect
|
||||||
print(f"Python version: {sys.version}")
|
print(f"Python version: {sys.version}")
|
||||||
print(f"Version info: {sys.version_info}")
|
print(f"Version info: {sys.version_info}")
|
||||||
|
|
||||||
|
@ -58,6 +59,17 @@ def checkRunTimeError():
|
||||||
if hwnd:
|
if hwnd:
|
||||||
os.system("TASKKILL /F /IM taosd.exe")
|
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
|
# run case on previous cluster
|
||||||
#
|
#
|
||||||
|
@ -69,7 +81,6 @@ def runOnPreviousCluster(host, config, fileName):
|
||||||
if platform.system().lower() == 'windows':
|
if platform.system().lower() == 'windows':
|
||||||
sep = os.sep
|
sep = os.sep
|
||||||
uModule = dynamicLoadModule(fileName)
|
uModule = dynamicLoadModule(fileName)
|
||||||
|
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
case = case_class()
|
case = case_class()
|
||||||
|
|
||||||
|
@ -351,8 +362,7 @@ if __name__ == "__main__":
|
||||||
updateCfgDictStr = ''
|
updateCfgDictStr = ''
|
||||||
# adapter_cfg_dict_str = ''
|
# adapter_cfg_dict_str = ''
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace(os.sep, ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
@ -524,8 +534,7 @@ if __name__ == "__main__":
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if is_test_framework:
|
if is_test_framework:
|
||||||
moduleName = fileName.replace(".py", "").replace("/", ".")
|
uModule = dynamicLoadModule(fileName)
|
||||||
uModule = importlib.import_module(moduleName)
|
|
||||||
try:
|
try:
|
||||||
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
case_class = getattr(uModule, get_local_classes(uModule)[-1])
|
||||||
ucase = case_class()
|
ucase = case_class()
|
||||||
|
|
Loading…
Reference in New Issue