def encapsulateItWithGlobalException_noParameters_unknownException(): #arrange @EncapsulateItWithGlobalException() def internalFuncionDoesNotThrowsException(): return SUCCESS @EncapsulateItWithGlobalException() def internalFuncionDoesThrowsException(): raise RAISED_EXCEPTION # #act externalSuccess = externalFuncionDoesNotThrowsException() internalSuccess = internalFuncionDoesNotThrowsException() externalFailure = TestHelper.getRaisedException( externalFuncionDoesThrowsException) internalFailure = TestHelper.getRaisedException( internalFuncionDoesThrowsException) # print(externalFailure.logResource) # print(externalFailure.logResourceMethod) # print(internalFailure.logResource) # print(internalFailure.logResourceMethod) #assert assert SUCCESS == externalSuccess assert SUCCESS == internalSuccess assert not RAISED_EXCEPTION == externalFailure, f'not {RAISED_EXCEPTION} == {externalFailure}: {not RAISED_EXCEPTION == externalFailure}' assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert not RAISED_EXCEPTION == externalFailure, f'not {RAISED_EXCEPTION} == {externalFailure}: {not RAISED_EXCEPTION == externalFailure}' assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert GlobalException == ReflectionHelper.getClass(externalFailure) assert GlobalException == ReflectionHelper.getClass(internalFailure) assert ExceptionHandler.DEFAULT_MESSAGE == externalFailure.message, f'{ExceptionHandler.DEFAULT_LOG_MESSAGE} == {externalFailure.message}: {ExceptionHandler.DEFAULT_LOG_MESSAGE == externalFailure.message}' assert ExceptionHandler.DEFAULT_MESSAGE == internalFailure.message assert HttpStatus.INTERNAL_SERVER_ERROR == externalFailure.status assert HttpStatus.INTERNAL_SERVER_ERROR == internalFailure.status assert FAILURE == externalFailure.logMessage assert FAILURE == internalFailure.logMessage assert ExceptionHandler.DEFAULT_LOG_RESOURCE == externalFailure.logResource, f'{ExceptionHandler.DEFAULT_LOG_RESOURCE} == {externalFailure.logResource}: {ExceptionHandler.DEFAULT_LOG_RESOURCE == externalFailure.logResource}' assert externalFuncionDoesThrowsException.__name__ == externalFailure.logResourceMethod.__name__, f'{externalFuncionDoesThrowsException} == {externalFailure.logResourceMethod}: {externalFuncionDoesThrowsException == externalFailure.logResourceMethod}' assert ExceptionHandler.DEFAULT_LOG_RESOURCE == internalFailure.logResource, f'{ExceptionHandler.DEFAULT_LOG_RESOURCE} == {internalFailure.logResource}: {ExceptionHandler.DEFAULT_LOG_RESOURCE == internalFailure.logResource}' assert type(internalFuncionDoesThrowsException) == type( internalFailure.logResourceMethod)
def encapsulateItWithGlobalException_noParameters_GlobalException(): #arrange class MyClass: def myMethod(self): ... resource = MyClass() ERROR_MESSAGE = 'ERROR_MESSAGE' LOG_ERROR_MESSAGE = 'LOG_ERROR_MESSAGE' EXCEPTION_STATUS = HttpStatus.BAD_REQUEST simpleException = GlobalException(status=EXCEPTION_STATUS, message=ERROR_MESSAGE, logMessage=LOG_ERROR_MESSAGE, logResource=resource, logResourceMethod=resource.myMethod) @EncapsulateItWithGlobalException() def internalFuncionDoesThrowsException(): raise simpleException # #act internalFailure = TestHelper.getRaisedException( internalFuncionDoesThrowsException) # print(internalFailure) # print(internalFailure.logResource) # print(internalFailure.logResourceMethod) #assert assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert GlobalException == ReflectionHelper.getClass(internalFailure) assert ERROR_MESSAGE == internalFailure.message, f'"{ERROR_MESSAGE}" and "{internalFailure.message}" should be equals' assert EXCEPTION_STATUS == internalFailure.status assert LOG_ERROR_MESSAGE == internalFailure.logMessage, f'"{LOG_ERROR_MESSAGE} == {internalFailure.logMessage}": {LOG_ERROR_MESSAGE == internalFailure.logMessage}' assert resource == internalFailure.logResource, f'"{resource} == {internalFailure.logResource}": {resource == internalFailure.logResource}' assert resource.myMethod == internalFailure.logResourceMethod, f'"{resource.myMethod} == {internalFailure.logResourceMethod}": {resource.myMethod == internalFailure.logResourceMethod}'
def encapsulateItWithGlobalException_withParameters_GlobalException(): #arrange class MyClass: def myMethod(self): ... resource = MyClass() ERROR_MESSAGE = 'ERROR_MESSAGE' LOG_ERROR_MESSAGE = 'LOG_ERROR_MESSAGE' EXCEPTION_STATUS = HttpStatus.BAD_REQUEST simpleException = Exception(ERROR_MESSAGE) PERSONALIZED_MESSAGE = 'PERSONALIZED_MESSAGE' PERSONALIZED_STATUS = HttpStatus.UNAUTHORIZED @EncapsulateItWithGlobalException(message=PERSONALIZED_MESSAGE, status=PERSONALIZED_STATUS) def internalFuncionDoesThrowsException(): raise simpleException #act internalFailure = TestHelper.getRaisedException( internalFuncionDoesThrowsException) # print(internalFailure) # print(internalFailure.logResource) # print(internalFailure.logResourceMethod) #assert assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert not RAISED_EXCEPTION == internalFailure, f'not {RAISED_EXCEPTION} == {internalFailure}: {not RAISED_EXCEPTION == internalFailure}' assert GlobalException == ReflectionHelper.getClass(internalFailure) assert PERSONALIZED_MESSAGE == internalFailure.message, f'{PERSONALIZED_MESSAGE} == {internalFailure.message}: {PERSONALIZED_MESSAGE == internalFailure.message}' assert PERSONALIZED_STATUS == internalFailure.status assert ERROR_MESSAGE == internalFailure.logMessage, f'{ERROR_MESSAGE} == {internalFailure.logMessage}: {ERROR_MESSAGE == internalFailure.logMessage}' assert ExceptionHandler.DEFAULT_LOG_RESOURCE == internalFailure.logResource assert type(internalFuncionDoesThrowsException) == type( internalFailure.logResourceMethod)