defl/tests/test_tester.py
2024-09-11 11:14:03 -04:00

115 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python
import defl
from defl import log, cl
from defl.testing_ import Tester, Test, TestState
testerToTest = Tester(name='toTest')
@testerToTest.add(assertResult=True)
def retTrue():
return True
@testerToTest.add(assertResult=True)
def retFalseAssertTrue():
return False
@testerToTest.add()
def ret1():
return 1
@testerToTest.add()
def retNone():
return None
@testerToTest.add()
def raiseValueError():
raise ValueError()
@testerToTest.add()
def assertFail():
assert False
@testerToTest.add()
def assertSuccess():
assert True
# testerToTest.run()
tester = Tester(name=__file__)
@tester.add()
def checkResults():
assert testerToTest._tests
@tester.add()
def allTest():
assert all(isinstance(x, Test) for x in testerToTest._tests)
@tester.add()
def allPending():
assert all(x.state is TestState.Pending for x in testerToTest._tests)
@tester.add()
def runAndAllNotPending():
log.info(testerToTest.run())
assert all(x.state is not TestState.Pending for x in testerToTest._tests)
def getTestByFuncName(funcName):
return [x for x in testerToTest._tests if x.func.__name__ == funcName][0]
@tester.add()
def testerToTest_retTrue():
assert getTestByFuncName("retTrue").result == True
@tester.add()
def testerToTest_retFalseAssertTrue():
assert getTestByFuncName("retFalseAssertTrue").result == False
assert getTestByFuncName("retFalseAssertTrue").state is TestState.FailedAssert
@tester.add()
def testerToTest_ret1():
assert getTestByFuncName("ret1").result == 1
assert getTestByFuncName("ret1").state is TestState.Success
@tester.add()
def testerToTest_retNone():
assert getTestByFuncName("retNone").result == None
@tester.add()
def testerToTest_raiseValueError():
assert str(getTestByFuncName("raiseValueError").result) == 'ValueError'
@tester.add()
def testerToTest_assertFail():
assert str(getTestByFuncName("assertFail").result) == 'AssertionError'
@tester.add()
def testerToTest_assertSuccess():
assert getTestByFuncName("assertSuccess").result == None
log.info(tester.run())
tester.exitWithStatus()