def test_exception_caught_with_argument(self): def test_func(arg): raise FakeException('test error') self.logger.exception = mock.MagicMock() self.logger.debug = mock.MagicMock() decorated_func = check(test_func) keys = ['ok', 'error', 'stacktrace'] response = decorated_func('default') self.assertIsInstance(response, dict) for key in keys: self.assertIn(key, response['default']) self.assertEqual(response['default']['ok'], False) self.assertEqual(response['default']['error'], 'test error') self.assertIsInstance(response['default']['stacktrace'], str) self.logger.debug.assert_called_once_with( "Checking '%s' for '%s'", 'test_func', 'default' ) self.logger.exception.assert_called_once_with( "Error calling '%s' for '%s': %s", 'test_func', 'default', 'test error' )
def test_exception_caught_with_argument(self): keys = ['ok', 'error', 'stacktrace'] func = mock.Mock(side_effect=FakeException('example error')) decorated_func = check(func) response = decorated_func('default') self.assertIsInstance(response, dict) for key in keys: self.assertIn(key, response['default']) self.assertEqual(response['default']['ok'], False) self.assertEqual(response['default']['error'], 'example error') self.assertIsInstance(response['default']['stacktrace'], str)