def unitTest(testModule, testName, data, testReturns, logResult): discountTimeEnd = time.time() unitTestException = None if logResult: LogHelper.test(unitTest, f'{testName}{c.DOT}{data[1]} test started') moduleTestStartTime = time.time() try: testReturns[data[1]] = data[0]() LogHelper.printSuccess( f'{data[0].__module__}{c.DOT}{data[0].__name__} succeed', condition=logResult, newLine=False, margin=False) except Exception as exception: LogHelper.printError( f'{data[0].__module__}{c.DOT}{data[0].__name__} failed', condition=True, newLine=False, margin=False, exception=exception) unitTestException = exception if logResult: LogHelper.test( unitTest, f'{testName}{c.DOT}{data[1]} test completed in {time.time() - moduleTestStartTime} seconds' ) if ObjectHelper.isNotNone(unitTestException): raise unitTestException someDidRun = True return testName, data, testReturns, someDidRun, logResult, discountTimeEnd
def handleAfter(resourceInstanceMethod, actionClass, args, kwargs, returns, methodReturn, inspectGlobals, methodReturnException=None, logResult=True) : inspectGlobalsIfNeeded(inspectGlobals, resourceInstanceMethod, 'did run') if ObjectHelper.isNone(methodReturnException) : LogHelper.printSuccess(f'{ReflectionHelper.getMethodModuleNameDotName(resourceInstanceMethod)} test succeed', condition=logResult, newLine=False, margin=False) else : LogHelper.printError(f'{ReflectionHelper.getMethodModuleNameDotName(resourceInstanceMethod)} test failed', condition=logResult, newLine=False, margin=False, exception=methodReturnException) actionHandlerException = handle(resourceInstanceMethod, actionClass, args, kwargs, returns, AFTER_THE_TEST, RETURN_VALUE_FROM_CALL_AFTER) LogHelper.test(resourceInstanceMethod, 'Test completed') if ObjectHelper.isNotNone(methodReturnException) or ObjectHelper.isNotNone(actionHandlerException) : if ObjectHelper.isNotNone(methodReturnException) and ObjectHelper.isNotNone(actionHandlerException) : raise Exception(f'{LogHelper.getExceptionMessage(methodReturnException)}. Followed by: {LogHelper.getExceptionMessage(actionHandlerException)}') elif ObjectHelper.isNotNone(methodReturnException) : raise methodReturnException raise actionHandlerException if not TEST_VALUE_NOT_SET == methodReturn : return methodReturn
def runModuleTests(testName, runnableTddModule, times, runSpecificTests, testsToRun, logResult, globalsInstance): import globals testModule = globals.importModule(testName) dataList = ReflectionHelper.getAttributeDataList(testModule) LogHelper.prettyPython( runnableTddModule, f'{ReflectionHelper.getName(testModule)} tests loaded', dataList, logLevel=LogHelper.TEST) allShouldRun, someShouldRun, allDidRun, someDidRun = getRunStatus( testModule, dataList, runSpecificTests, testsToRun) testReturns = {} testTime = 0 totalTestTimeStart = time.time() if someShouldRun: defaultMessage = f'{testName}{StringHelper.getS(allShouldRun)}' methodReturnException = None LogHelper.test(runModuleTests, f'{defaultMessage} started') try: allDidRun, someDidRun, testTime, testReturns = runnableTddModule( testName, testModule, dataList, times, runSpecificTests, testsToRun, allShouldRun, someShouldRun, logResult) LogHelper.printSuccess( f'{defaultMessage} succeed. {getTestRuntimeInfo(times, testTime, time.time() - totalTestTimeStart)}', condition=logResult, newLine=True, margin=False) except Exception as exception: methodReturnException = exception LogHelper.printError(f'{defaultMessage} failed', condition=True, newLine=True, margin=False, exception=methodReturnException) exceptionRaised = ObjectHelper.isNotNone(methodReturnException) defaultMessage = f'{testName}{StringHelper.getS(not exceptionRaised and allDidRun)}' if exceptionRaised: raise methodReturnException return allDidRun, someDidRun, testTime, testReturns