def setUp(self): from acme.messages import Error, ERROR_PREFIX self.error = Error.with_code('malformed', detail='foo', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.empty_error = Error()
def setUp(self): from acme.messages import Error self.error = Error( detail='foo', typ='urn:acme:error:malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': 'urn:acme:error:malformed', } self.error_custom = Error(typ='custom', detail='bar') self.jobj_cusom = {'type': 'custom', 'detail': 'bar'}
def setUp(self): from acme.messages import Error, ERROR_PREFIX, Identifier, IDENTIFIER_FQDN self.error = Error.with_code('malformed', detail='foo', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.identifier = Identifier(typ=IDENTIFIER_FQDN, value='example.com') self.subproblem = Error.with_code('caa', detail='bar', title='title', identifier=self.identifier) self.error_with_subproblems = Error.with_code('malformed', detail='foo', title='title', subproblems=[self.subproblem]) self.empty_error = Error()
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', }
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='urn:acme:error:malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': 'urn:acme:error:malformed', } self.error_custom = Error(typ='custom', detail='bar') self.jobj_cusom = {'type': 'custom', 'detail': 'bar'} def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_description(self): self.assertEqual( 'The request message was malformed', self.error.description) self.assertTrue(self.error_custom.description is None) def test_str(self): self.assertEqual( 'urn:acme:error:malformed :: The request message was ' 'malformed :: foo :: title', str(self.error)) self.assertEqual('custom :: bar', str(self.error_custom))
def test_is_acme_error(self): from acme.messages import is_acme_error, Error self.assertTrue(is_acme_error(self.error)) self.assertFalse(is_acme_error(self.error_custom)) self.assertFalse(is_acme_error(Error())) self.assertFalse(is_acme_error(self.empty_error)) self.assertFalse(is_acme_error("must pet all the {dogs|rabbits}"))
def setUp(self): self.chall = challenges.DNS(token=jose.b64decode( 'evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA')) from acme.messages import ChallengeBody from acme.messages import Error from acme.messages import STATUS_INVALID self.status = STATUS_INVALID error = Error(typ='serverInternal', detail='Unable to communicate with DNS server') self.challb = ChallengeBody( uri='http://challb', chall=self.chall, status=self.status, error=error) self.jobj_to = { 'uri': 'http://challb', 'status': self.status, 'type': 'dns', 'token': 'evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA', 'error': error, } self.jobj_from = self.jobj_to.copy() self.jobj_from['status'] = 'invalid' self.jobj_from['error'] = { 'type': 'urn:acme:error:serverInternal', 'detail': 'Unable to communicate with DNS server', }
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())
def test_from_json_with_subproblems(self): from acme.messages import Error parsed_error = Error.from_json(self.error_with_subproblems.to_json()) self.assertEqual(1, len(parsed_error.subproblems)) self.assertEqual(self.subproblem, parsed_error.subproblems[0])
def test_unicode_error(self): from acme.messages import Error, is_acme_error arabic_error = Error.with_code( 'malformed', detail=u'\u0639\u062f\u0627\u0644\u0629', title='title') self.assertTrue(is_acme_error(arabic_error))
class ErrorTest(unittest.TestCase): """Tests for acme.messages.Error.""" def setUp(self): from acme.messages import Error, ERROR_PREFIX self.error = Error(detail='foo', typ=ERROR_PREFIX + 'malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.empty_error = Error() self.jobj_custom = {'type': 'custom', 'detail': 'bar'} def test_default_typ(self): from acme.messages import Error self.assertEqual(Error().typ, 'about:blank') def test_from_json_empty(self): from acme.messages import Error self.assertEqual(Error(), Error.from_json('{}')) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_description(self): self.assertEqual('The request message was malformed', self.error.description) self.assertTrue(self.error_custom.description is None) def test_code(self): from acme.messages import Error self.assertEqual('malformed', self.error.code) self.assertEqual(None, self.error_custom.code) self.assertEqual(None, Error().code) def test_is_acme_error(self): from acme.messages import is_acme_error self.assertTrue(is_acme_error(self.error)) self.assertFalse(is_acme_error(self.error_custom)) self.assertFalse(is_acme_error(self.empty_error)) self.assertFalse(is_acme_error("must pet all the {dogs|rabbits}")) def test_unicode_error(self): from acme.messages import Error, ERROR_PREFIX, is_acme_error arabic_error = Error(detail=u'\u0639\u062f\u0627\u0644\u0629', typ=ERROR_PREFIX + 'malformed', title='title') self.assertTrue(is_acme_error(arabic_error)) def test_with_code(self): from acme.messages import Error, is_acme_error self.assertTrue(is_acme_error(Error.with_code('badCSR'))) self.assertRaises(ValueError, Error.with_code, 'not an ACME error code')
class ErrorTest(unittest.TestCase): """Tests for acme.messages.Error.""" def setUp(self): from acme.messages import Error, ERROR_PREFIX self.error = Error( detail='foo', typ=ERROR_PREFIX + 'malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.empty_error = Error() self.jobj_custom = {'type': 'custom', 'detail': 'bar'} def test_default_typ(self): from acme.messages import Error self.assertEqual(Error().typ, 'about:blank') def test_from_json_empty(self): from acme.messages import Error self.assertEqual(Error(), Error.from_json('{}')) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_description(self): self.assertEqual( 'The request message was malformed', self.error.description) self.assertTrue(self.error_custom.description is None) def test_code(self): from acme.messages import Error self.assertEqual('malformed', self.error.code) self.assertEqual(None, self.error_custom.code) self.assertEqual(None, Error().code) def test_is_acme_error(self): from acme.messages import is_acme_error self.assertTrue(is_acme_error(self.error)) self.assertFalse(is_acme_error(self.error_custom)) self.assertFalse(is_acme_error(self.empty_error)) self.assertFalse(is_acme_error("must pet all the {dogs|rabbits}")) def test_unicode_error(self): from acme.messages import Error, ERROR_PREFIX, is_acme_error arabic_error = Error( detail=u'\u0639\u062f\u0627\u0644\u0629', typ=ERROR_PREFIX + 'malformed', title='title') self.assertTrue(is_acme_error(arabic_error)) def test_with_code(self): from acme.messages import Error, is_acme_error self.assertTrue(is_acme_error(Error.with_code('badCSR'))) self.assertRaises(ValueError, Error.with_code, 'not an ACME error code')
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, ERROR_PREFIX self.error = Error(detail='foo', typ=ERROR_PREFIX + 'malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.jobj_custom = {'type': 'custom', 'detail': 'bar'} def test_default_typ(self): from acme.messages import Error self.assertEqual(Error().typ, 'about:blank') def test_from_json_empty(self): from acme.messages import Error self.assertEqual(Error(), Error.from_json('{}')) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_description(self): self.assertEqual('The request message was malformed', self.error.description) self.assertTrue(self.error_custom.description is None) def test_str(self): self.assertEqual( 'urn:ietf:params:acme:error:malformed :: The request message was ' 'malformed :: foo :: title', str(self.error)) self.assertEqual('custom :: bar', str(self.error_custom)) def test_code(self): from acme.messages import Error self.assertEqual('malformed', self.error.code) self.assertEqual(None, self.error_custom.code) self.assertEqual(None, Error().code) def test_is_acme_error(self): from acme.messages import is_acme_error self.assertTrue(is_acme_error(self.error)) self.assertTrue(is_acme_error(str(self.error))) self.assertFalse(is_acme_error(self.error_custom)) def test_with_code(self): from acme.messages import Error, is_acme_error self.assertTrue(is_acme_error(Error.with_code('badCSR'))) self.assertRaises(ValueError, Error.with_code, 'not an ACME error code')
class ErrorTest(unittest.TestCase): """Tests for acme.messages.Error.""" def setUp(self): from acme.messages import Error, ERROR_PREFIX self.error = Error( detail='foo', typ=ERROR_PREFIX + 'malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.jobj_custom = {'type': 'custom', 'detail': 'bar'} def test_default_typ(self): from acme.messages import Error self.assertEqual(Error().typ, 'about:blank') def test_from_json_empty(self): from acme.messages import Error self.assertEqual(Error(), Error.from_json('{}')) def test_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json())) def test_description(self): self.assertEqual( 'The request message was malformed', self.error.description) self.assertTrue(self.error_custom.description is None) def test_str(self): self.assertEqual( 'urn:ietf:params:acme:error:malformed :: The request message was ' 'malformed :: foo :: title', str(self.error)) self.assertEqual('custom :: bar', str(self.error_custom)) def test_code(self): from acme.messages import Error self.assertEqual('malformed', self.error.code) self.assertEqual(None, self.error_custom.code) self.assertEqual(None, Error().code) def test_is_acme_error(self): from acme.messages import is_acme_error self.assertTrue(is_acme_error(self.error)) self.assertTrue(is_acme_error(str(self.error))) self.assertFalse(is_acme_error(self.error_custom)) def test_with_code(self): from acme.messages import Error, is_acme_error self.assertTrue(is_acme_error(Error.with_code('badCSR'))) self.assertRaises(ValueError, Error.with_code, 'not an ACME error code')
def setUp(self): from acme.messages import Error, ERROR_PREFIX self.error = Error( detail='foo', typ=ERROR_PREFIX + 'malformed', title='title') self.jobj = { 'detail': 'foo', 'title': 'some title', 'type': ERROR_PREFIX + 'malformed', } self.error_custom = Error(typ='custom', detail='bar') self.jobj_custom = {'type': 'custom', 'detail': 'bar'}
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', }
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)))
def test_with_code(self): from acme.messages import Error, is_acme_error self.assertTrue(is_acme_error(Error.with_code('badCSR'))) self.assertRaises(ValueError, Error.with_code, 'not an ACME error code')
def test_from_json(self): from acme.messages import Error self.assertEqual(Error.from_json(self.jmsg), self.msg)
def test_code(self): from acme.messages import Error self.assertEqual('malformed', self.error.code) self.assertEqual(None, self.error_custom.code) self.assertEqual(None, Error().code)
def test_from_json_empty(self): from acme.messages import Error self.assertEqual(Error(), Error.from_json('{}'))
def test_default_typ(self): from acme.messages import Error self.assertEqual(Error().typ, 'about:blank')
def test_unicode_error(self): from acme.messages import Error, ERROR_PREFIX, is_acme_error arabic_error = Error( detail=u'\u0639\u062f\u0627\u0644\u0629', typ=ERROR_PREFIX + 'malformed', title='title') self.assertTrue(is_acme_error(arabic_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_from_json_hashable(self): from acme.messages import Error hash(Error.from_json(self.error.to_json()))