def test_proxy_rejected(self): from fanboi2.errors import serialize_error, ProxyRejectedError error = serialize_error('proxy_rejected') request = self._makeRequest() self.assertIsInstance(error, ProxyRejectedError) self.assertIsNotNone(error.message(request)) self.assertEqual(error.name, 'proxy_rejected') self.assertEqual(error.http_status, '422 Unprocessable Entity')
def test_base_error(self): from fanboi2.errors import BaseError, serialize_error error = serialize_error('base', 10) request = self._makeRequest() self.assertIsInstance(error, BaseError) self.assertIsNotNone(error.message(request)) self.assertEqual(error.name, 'unknown') self.assertEqual(error.http_status, '500 Internal Server Error')
def test_params_invalid(self): from fanboi2.errors import serialize_error, ParamsInvalidError error = serialize_error('params_invalid', {}) request = self._makeRequest() self.assertIsInstance(error, ParamsInvalidError) self.assertEqual(error.messages, {}) self.assertIsNotNone(error.message(request)) self.assertEqual(error.name, 'params_invalid') self.assertEqual(error.http_status, '400 Bad Request')
def test_rate_limited(self): from fanboi2.errors import serialize_error, RateLimitedError error = serialize_error('rate_limited', 10) request = self._makeRequest() self.assertIsInstance(error, RateLimitedError) self.assertEqual(error.timeleft, 10) self.assertIsNotNone(error.message(request)) self.assertEqual(error.name, 'rate_limited') self.assertEqual(error.http_status, '429 Too Many Requests')
def object(self): """Serializing the result into Python object. :rtype: object """ if self._object is None: obj, id_, *args = self._result.get() if obj == 'failure': self._object = serialize_error(id_, *args) else: class_ = serialize_model(obj) if class_ is not None: self._object = DBSession.query(class_).\ filter_by(id=id_).\ one() return self._object