Example #1
0
 def doPrepareRetry(self, *args, **kwargs):
     """
     Action method.
     """
     # small workaround for situations when that contact already exists on the server,
     # epp_id is generated randomly so there is a chance you hit already existing object
     self.contact_info['id'] = rpc_client.make_epp_id(self.contact_info['email']) + 'a'
Example #2
0
def test_contact_update():
    if os.environ.get('E2E', '0') != '1':
        return pytest.skip('skip E2E')  # @UndefinedVariable
    tester_contact = testsupport.prepare_tester_contact()
    existing_contact_id = rpc_client.make_epp_id(tester_contact.contact_email)
    existing_contact_info = zcontacts.to_dict(tester_contact)
    create_response = rpc_client.cmd_contact_create(
        contact_id=existing_contact_id,
        email=existing_contact_info['email'],
        voice=existing_contact_info['voice'],
        fax=existing_contact_info['fax'],
        # auth_info=auth_info,
        contacts_list=existing_contact_info['contacts'],
        raise_for_result=False,
    )
    assert create_response['epp']['response']['result']['@code'] == '1000'
    tester_contact.epp_id = existing_contact_id
    tester_contact.person_name = 'Tester Tester ' + str(int(time.time()))
    tester_contact.save()
    scenario = []
    cs = contact_synchronizer.ContactSynchronizer(
        log_events=True,
        log_transitions=True,
    )
    cs.add_state_changed_callback(
        cb=lambda oldstate, newstate, event, *args, **kwargs: scenario.append((
            oldstate,
            newstate,
            event,
        )),
    )
    cs.event('run', tester_contact)
    outputs = list(cs.outputs)
    del cs
    assert tester_contact.epp_id != ''
    delete_response = rpc_client.cmd_contact_delete(tester_contact.epp_id)
    assert delete_response['epp']['response']['result']['@code'] == '1000'
    tester_contact.epp_id = None
    tester_contact.save()
    assert scenario == [
        ('AT_STARTUP', 'CONTACT_UPDATE', 'run'),
        ('CONTACT_UPDATE', 'DONE', 'response'),
    ]
    assert len(outputs) == 1
    assert outputs[0]['epp']['response']['result']['@code'] == '1000'
Example #3
0
def test_domain_update():
    if os.environ.get('E2E', '0') != '1':
        return pytest.skip('skip E2E')  # @UndefinedVariable
    tester = testsupport.prepare_tester_account()
    tester_domain = testsupport.prepare_tester_domain(
        domain_name='test.%s' % settings.ZENAIDA_SUPPORTED_ZONES[0],
        domain_epp_id=rpc_client.make_epp_id(tester.email),
        tester=tester,
    )
    scenario = []
    cs = domain_contacts_synchronizer.DomainContactsSynchronizer(
        update_domain=True,
        log_events=True,
        log_transitions=True,
        raise_errors=True,
    )
    cs.add_state_changed_callback(
        cb=lambda oldstate, newstate, event, *args, **kwargs: scenario.append((
            oldstate,
            newstate,
            event,
        )),
    )
    cs.event('run', target_domain=tester_domain)
    outputs = list(cs.outputs)
    del cs
    assert scenario == [
        ('AT_STARTUP', 'SYNC_CONTACTS', 'run'),
        ('SYNC_CONTACTS', 'DOMAIN_INFO?', 'all-contacts-in-sync'),
        ('DOMAIN_INFO?', 'DOMAIN_UPDATE', 'response'),
        ('DOMAIN_UPDATE', 'DONE', 'response'),
    ]
    assert len(outputs) == 5
    assert outputs[0][0] == 'admin'
    assert outputs[0][1]['epp']['response']['resData']['creData'][
        'id'] == tester_domain.contact_admin.epp_id
    assert outputs[1][0] == 'billing'
    assert outputs[1][1]['epp']['response']['resData']['creData'][
        'id'] == tester_domain.contact_billing.epp_id
    assert outputs[2][0] == 'registrant'
    assert outputs[2][1]['epp']['response']['resData']['creData'][
        'id'] == tester_domain.registrant.epp_id
    assert outputs[3][0] == 'tech'
    assert outputs[3][1]['epp']['response']['resData']['creData'][
        'id'] == tester_domain.contact_tech.epp_id
def test_update_hostnames():
    if os.environ.get('E2E', '0') != '1':
        return pytest.skip('skip E2E')  # @UndefinedVariable
    tester = testsupport.prepare_tester_account()
    tester_domain = testsupport.prepare_tester_domain(
        domain_name='test.%s' % settings.ZENAIDA_SUPPORTED_ZONES[0],
        tester=tester,
        domain_epp_id=rpc_client.make_epp_id(tester.email),
        add_contacts=[
            'registrant',
            'admin',
        ],
        nameservers=[
            'ns1.google.com',
            'ns2.google.com',
            'ns3.google.com',
        ])
    scenario1 = []
    cs1 = domain_hostnames_synchronizer.DomainHostnamesSynchronizer(
        update_domain=True,
        log_events=True,
        log_transitions=True,
        raise_errors=True,
    )
    cs1.add_state_changed_callback(
        cb=lambda oldstate, newstate, event, *args, **kwargs: scenario1.append(
            (
                oldstate,
                newstate,
                event,
            )),
    )
    cs1.event(
        'run',
        target_domain=tester_domain,
        known_domain_info=rpc_client.cmd_domain_info(
            domain=tester_domain.name),
    )
    outputs1 = list(cs1.outputs)
    del cs1

    tester_domain.nameserver4 = 'ns4.google.com'
    tester_domain.save()
    scenario2 = []
    cs2 = domain_hostnames_synchronizer.DomainHostnamesSynchronizer(
        update_domain=True,
        log_events=True,
        log_transitions=True,
        raise_errors=True,
    )
    cs2.add_state_changed_callback(
        cb=lambda oldstate, newstate, event, *args, **kwargs: scenario2.append(
            (
                oldstate,
                newstate,
                event,
            )),
    )
    cs2.event(
        'run',
        target_domain=tester_domain,
        known_domain_info=rpc_client.cmd_domain_info(
            domain=tester_domain.name),
    )
    outputs2 = list(cs2.outputs)
    del cs2

    # one nameserver should be removed
    assert scenario1 == [
        ('AT_STARTUP', 'DOMAIN_INFO?', 'run'),
        ('DOMAIN_INFO?', 'HOSTS_CHECK', 'response'),
        ('HOSTS_CHECK', 'DOMAIN_UPDATE!', 'no-hosts-to-be-added'),
        ('DOMAIN_UPDATE!', 'DONE', 'response'),
    ]
    assert len(outputs1) == 1
    assert outputs1[0]['epp']['response']['result']['@code'] == '1000'
    # one nameserver should be added back
    assert scenario2 == [
        ('AT_STARTUP', 'DOMAIN_INFO?', 'run'),
        ('DOMAIN_INFO?', 'HOSTS_CHECK', 'response'),
        ('HOSTS_CHECK', 'HOSTS_CREATE', 'response'),
        ('HOSTS_CREATE', 'DOMAIN_UPDATE!', 'all-hosts-created'),
        ('DOMAIN_UPDATE!', 'DONE', 'response'),
    ]
    assert len(outputs2) == 1
    assert outputs2[0]['epp']['response']['result']['@code'] == '1000'
Example #5
0
 def doPrepareCreate(self, *args, **kwargs):
     """
     Action method.
     """
     self.contact_info = zcontacts.to_dict(self.target_contact)
     self.contact_info['id'] = rpc_client.make_epp_id(self.contact_info['email'])