class ErrorTest(unittest.TestCase): def setUp(self): from acme.messages import Error self.msg = Error( error='badCSR', message='RSA keys must be at least 2048 bits long', more_info='https://ca.example.com/documentation/csr-requirements') self.jmsg = { 'type': 'error', 'error': 'badCSR', 'message': 'RSA keys must be at least 2048 bits long', 'moreInfo': 'https://ca.example.com/documentation/csr-requirements', } def test_to_partial_json(self): self.assertEqual(self.msg.to_partial_json(), self.jmsg) def test_from_json(self): from acme.messages import Error self.assertEqual(Error.from_json(self.jmsg), self.msg) def test_json_without_optionals(self): del self.jmsg['message'] del self.jmsg['moreInfo'] from acme.messages import Error msg = Error.from_json(self.jmsg) self.assertTrue(msg.message is None) self.assertTrue(msg.more_info is None) self.assertEqual(self.jmsg, msg.to_partial_json())
class ErrorTest(unittest.TestCase): def setUp(self): from acme.messages import Error self.msg = Error( error='badCSR', message='RSA keys must be at least 2048 bits long', more_info='https://ca.example.com/documentation/csr-requirements') self.jmsg = { 'type': 'error', 'error': 'badCSR', 'message':'RSA keys must be at least 2048 bits long', 'moreInfo': 'https://ca.example.com/documentation/csr-requirements', } def test_to_partial_json(self): self.assertEqual(self.msg.to_partial_json(), self.jmsg) def test_from_json(self): from acme.messages import Error self.assertEqual(Error.from_json(self.jmsg), self.msg) def test_json_without_optionals(self): del self.jmsg['message'] del self.jmsg['moreInfo'] from acme.messages import Error msg = Error.from_json(self.jmsg) self.assertTrue(msg.message is None) self.assertTrue(msg.more_info is None) self.assertEqual(self.jmsg, msg.to_partial_json())
class ErrorTest(unittest.TestCase): """Tests for acme.messages.Error.""" def setUp(self): from acme.messages import Error self.error = Error(detail='foo', typ='malformed', title='title') self.jobj = {'detail': 'foo', 'title': 'some title'} def test_typ_prefix(self): self.assertEqual('malformed', self.error.typ) self.assertEqual('urn:acme:error:malformed', self.error.to_partial_json()['type']) self.assertEqual( 'malformed', self.error.from_json(self.error.to_partial_json()).typ) def test_typ_decoder_missing_prefix(self): from acme.messages import Error self.jobj['type'] = 'malformed' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) self.jobj['type'] = 'not valid bare type' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) def test_typ_decoder_not_recognized(self): from acme.messages import Error self.jobj['type'] = 'urn:acme:error:baz' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) def test_description(self): self.assertEqual('The request message was malformed', self.error.description) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_str(self): self.assertEqual( 'malformed :: The request message was malformed :: foo', str(self.error)) self.assertEqual('foo', str(self.error.update(typ=None)))
class ErrorTest(unittest.TestCase): """Tests for acme.messages.Error.""" def setUp(self): from acme.messages import Error self.error = Error(detail='foo', typ='malformed', title='title') self.jobj = {'detail': 'foo', 'title': 'some title'} def test_typ_prefix(self): self.assertEqual('malformed', self.error.typ) self.assertEqual( 'urn:acme:error:malformed', self.error.to_partial_json()['type']) self.assertEqual( 'malformed', self.error.from_json(self.error.to_partial_json()).typ) def test_typ_decoder_missing_prefix(self): from acme.messages import Error self.jobj['type'] = 'malformed' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) self.jobj['type'] = 'not valid bare type' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) def test_typ_decoder_not_recognized(self): from acme.messages import Error self.jobj['type'] = 'urn:acme:error:baz' self.assertRaises(jose.DeserializationError, Error.from_json, self.jobj) def test_description(self): self.assertEqual( 'The request message was malformed', self.error.description) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_str(self): self.assertEqual( 'malformed :: The request message was malformed :: foo', str(self.error)) self.assertEqual('foo', str(self.error.update(typ=None)))