コード例 #1
0
 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
コード例 #2
0
 def tddModule(testName, testModule, dataList, times, runSpecificTests,
               testsToRun, allShouldRun, someShouldRun, logResult):
     import globals
     tddModuleGlobalsInstance = globals.newGlobalsInstance(
         testModule.__file__,
         successStatus=globalsInstance.successStatus,
         errorStatus=globalsInstance.errorStatus,
         settingStatus=globalsInstance.settingStatus or inspectGlobals,
         debugStatus=globalsInstance.debugStatus,
         warningStatus=globalsInstance.warningStatus,
         wrapperStatus=globalsInstance.wrapperStatus,
         testStatus=globalsInstance.testStatus,
         logStatus=globalsInstance.logStatus)
     LogHelper.test(tddModule, f'{testName} started')
     testReturns = {}
     testTime = 0
     for data in dataList:
         testMustRun = isTestToRun(testModule, data, runSpecificTests,
                                   testsToRun)
         LogHelper.prettyPython(tddModule,
                                f'test attribute or method',
                                data[0],
                                logLevel=LogHelper.TEST)
         LogHelper.prettyPython(tddModule,
                                f'isTestToRun',
                                testMustRun,
                                logLevel=LogHelper.TEST)
         if testMustRun:
             for index in range(times):
                 testTimeStart = time.time()
                 if times - 1 == index:
                     runnableUnitTest = getUnitTest(inspectGlobals,
                                                    globalsInstance)
                     testName, data, testReturns, someDidRun, logResult, discountTimeEnd = runnableUnitTest(
                         testModule, testName, data, testReturns, logResult)
                 else:
                     runnableUnitTestBatch = getUnitTestBatch(
                         inspectGlobals, globalsInstance)
                     discountTimeEnd = runnableUnitTestBatch(
                         testModule, data)
                 testTime += time.time() - discountTimeEnd
         else:
             allDidRun = False
     if not allShouldRun == allDidRun and someShouldRun == someDidRun:
         amountAlthought = getAmmount(allShouldRun, someShouldRun)
         shouldOrShouldnt = getShouldOrShouldntAsString(
             allShouldRun, someShouldRun)
         amountAfterAlthought = getAmmount(allDidRun, someDidRun)
         didOrDidnt = getSomeDidOrDidntAsString(allDidRun, someDidRun)
         errorMessage = f'Inconsistenc{StringHelper.getS(allShouldRun or someShouldRun, es=True)} detected. Although {amountAlthought} test{StringHelper.getS(allShouldRun or someShouldRun)} {shouldOrShouldnt} run, {amountAfterAlthought} {didOrDidnt} run'
         exception = Exception(errorMessage)
         raise exception
     return allDidRun, someDidRun, testTime, testReturns
コード例 #3
0
def handle(resourceInstanceMethod, actionClass, args, kwargs, returns, moment, returnKey) :
    try :
        returnCall = None
        if actionIsPresent(actionClass) :
            argsMessage = getArgsLogMessage(args)
            kwargsMessage = getKwargsLogMessage(kwargs)
            returnCall = getRetrunValue(actionClass, args, kwargs)
            LogHelper.test(resourceInstanceMethod, f'{ReflectionHelper.getName(actionClass)}({argsMessage}, {kwargsMessage}): {returnCall}')
        else :
            LogHelper.test(resourceInstanceMethod, f'Test handler to perform actions {moment} the test is not defined')
        if returnsValueIsPresent(returns) :
            returns[returnKey] = returnCall
    except Exception as exception :
        LogHelper.printError(f'{ReflectionHelper.getMethodModuleNameDotName(resourceInstanceMethod)} test went wrong while handling actions {moment} the test. *args: {args}, **kwargs: {kwargs}. Enable test logs for more information', condition=True, newLine=False, margin=False, exception=exception)
        return exception
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
def handleBefore(resourceInstanceMethod, actionClass, args, kwargs, returns, inspectGlobals) :
    LogHelper.test(resourceInstanceMethod, 'Test started')
    actionHandlerException = handle(resourceInstanceMethod, actionClass, args, kwargs, returns, BEFORE_THE_TEST, RETURN_VALUE_FROM_CALL_BEFORE)
    if ObjectHelper.isNotNone(actionHandlerException) :
        raise actionHandlerException
    inspectGlobalsIfNeeded(inspectGlobals, resourceInstanceMethod, 'will run')
コード例 #7
0
def returnsValueIsPresent(returns) :
    isPresent = ObjectHelper.isDictionary(returns)
    if not isPresent :
        LogHelper.test(returnsValueIsPresent, f'the key "returns" from {ReflectionHelper.getMethodModuleNameDotName(Test)} annotation call was not defined')
    return isPresent