def _test_registration(self): return ( DeferredContext(self._test_create_client()) .addCallback(partial(setattr, self, 'client')) .addCallback(lambda _: self._test_register()) .addCallback(tap( lambda reg1: self.assertEqual(reg1.body.contact, ()))) .addCallback(tap( lambda reg1: self._test_register( NewRegistration.from_data(email=u'*****@*****.**')) .addCallback(tap( lambda reg2: self.assertEqual(reg1.uri, reg2.uri))) .addCallback(lambda reg2: self.assertEqual( reg2.body.contact, (u'mailto:[email protected]',))))) .addCallback(self._test_agree_to_tos) .addCallback( lambda _: self._test_request_challenges(self.HOST)) .addCallback(partial(setattr, self, 'authzr')) .addCallback(lambda _: self._create_responder()) .addCallback(tap(lambda _: self._test_poll_pending(self.authzr))) .addCallback(self._test_answer_challenge) .addCallback(tap(lambda _: self._test_poll(self.authzr))) .addCallback(lambda stop_responding: stop_responding()) .addCallback(lambda _: self._test_issue(self.HOST)) .addCallback(self._test_chain) .addActionFinish())
def test_default_not_transmitted(self): from acme.messages import NewRegistration empty_new_reg = NewRegistration() new_reg_with_contact = NewRegistration(contact=()) self.assertEqual(empty_new_reg.contact, ()) self.assertEqual(new_reg_with_contact.contact, ()) self.assertTrue('contact' not in empty_new_reg.to_partial_json()) self.assertTrue('contact' not in empty_new_reg.fields_to_partial_json()) self.assertTrue('contact' in new_reg_with_contact.to_partial_json()) self.assertTrue('contact' in new_reg_with_contact.fields_to_partial_json())
def test_new_registration_from_data_with_eab(self): from acme.messages import NewRegistration, ExternalAccountBinding, Directory key = jose.jwk.JWKRSA(key=KEY.public_key()) kid = "kid-for-testing" hmac_key = "hmac-key-for-testing" directory = Directory({ 'newAccount': 'http://url/acme/new-account', }) eab = ExternalAccountBinding.from_data(key, kid, hmac_key, directory) reg = NewRegistration.from_data(email='*****@*****.**', external_account_binding=eab) self.assertEqual(reg.contact, ('mailto:[email protected]', )) self.assertEqual(sorted(reg.external_account_binding.keys()), sorted(['protected', 'payload', 'signature']))
def test_new_registration_from_data_with_eab(self): from acme.messages import NewRegistration, ExternalAccountBinding, Directory key = jose.jwk.JWKRSA(key=KEY.public_key()) kid = "kid-for-testing" hmac_key = "hmac-key-for-testing" directory = Directory({ 'newAccount': 'http://url/acme/new-account', }) eab = ExternalAccountBinding.from_data(key, kid, hmac_key, directory) reg = NewRegistration.from_data(email='*****@*****.**', external_account_binding=eab) self.assertEqual(reg.contact, ( 'mailto:[email protected]', )) self.assertEqual(sorted(reg.external_account_binding.keys()), sorted(['protected', 'payload', 'signature']))
def test_getitem(self): self.assertEqual('reg', self.dir['new-reg']) from acme.messages import NewRegistration self.assertEqual('reg', self.dir[NewRegistration]) self.assertEqual('reg', self.dir[NewRegistration()])
async def get_or_create_account(self, email): msg = NewRegistration.from_data( email=email, terms_of_service_agreed=True ) return await self.client.get_or_create_account(msg)