Source code for mltrace.entities.base_test
"""
Base class for test objects.
"""
# from mltrace.entities.base import Base
import inspect
[docs]class Test(object):
def __init__(self, name: str = ""): # pass in list as args type?
self._name = name
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
[docs] def getTestMethods(self):
"""
Gets all methods in this class that start with "test"
"""
methods = inspect.getmembers(self, inspect.ismethod)
testMethods = [
function for name, function in methods if name.startswith("test")
]
return testMethods
[docs] def runTests(self, **kwargs):
"""
Runs all tests in this class.
"""
testMethods = self.getTestMethods()
for method in testMethods:
test_args = {
k: v
for k, v in kwargs.items()
if k in inspect.signature(method).parameters
}
getattr(self, method.__name__)(**test_args)