mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-21 10:16:13 +02:00
Update one nameserver test
This commit is contained in:
parent
62dd9dff73
commit
f2948a77de
3 changed files with 48 additions and 14 deletions
|
@ -309,7 +309,7 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
|
|
||||||
# currenthosts = self.nameservers
|
# currenthosts = self.nameservers
|
||||||
# that way you have current hosts
|
# that way you have current hosts
|
||||||
|
count = 0
|
||||||
for hostTuple in hosts:
|
for hostTuple in hosts:
|
||||||
host = hostTuple[0].strip() # for removing empty string -- do we need strip?
|
host = hostTuple[0].strip() # for removing empty string -- do we need strip?
|
||||||
addrs = None
|
addrs = None
|
||||||
|
@ -320,7 +320,7 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
# if you are dotgov and don't have an IP address then raise error
|
# if you are dotgov and don't have an IP address then raise error
|
||||||
# TRY logger.info() or print()
|
# TRY logger.info() or print()
|
||||||
avail = self._check_host([host])
|
avail = self._check_host([host])
|
||||||
|
|
||||||
if avail:
|
if avail:
|
||||||
createdCode = self._create_host(host=host, addrs=addrs) # creates in registry
|
createdCode = self._create_host(host=host, addrs=addrs) # creates in registry
|
||||||
# DOUBLE CHECK: _create_host should handle duplicates?
|
# DOUBLE CHECK: _create_host should handle duplicates?
|
||||||
|
@ -328,8 +328,10 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
# if createdCode == ErrorCode.OBJECT_EXISTS:
|
# if createdCode == ErrorCode.OBJECT_EXISTS:
|
||||||
# duplication check if it's already on the domain -- self.nameservers
|
# duplication check if it's already on the domain -- self.nameservers
|
||||||
# Is it possible for a nameserver to exist and not be on a domain yet? (can one have duplicate name servers)
|
# Is it possible for a nameserver to exist and not be on a domain yet? (can one have duplicate name servers)
|
||||||
# NOTE TO ANSWER THIS ON SLACK
|
|
||||||
# if it isn't in the domain - set a flag so that createdCode == ErrorCode.COMMAND_COMPLETED_SUCCESSFULLY:
|
# TODO: There could be an error here???
|
||||||
|
count += 1
|
||||||
|
# host can be used by multiple domains
|
||||||
if createdCode == ErrorCode.COMMAND_COMPLETED_SUCCESSFULLY:
|
if createdCode == ErrorCode.COMMAND_COMPLETED_SUCCESSFULLY:
|
||||||
# add host to domain (domain already created, just adding to it)
|
# add host to domain (domain already created, just adding to it)
|
||||||
request = commands.UpdateDomain(
|
request = commands.UpdateDomain(
|
||||||
|
@ -338,17 +340,19 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
registry.send(request, cleaned=True)
|
registry.send(request, cleaned=True)
|
||||||
|
# count += 1
|
||||||
except RegistryError as e:
|
except RegistryError as e:
|
||||||
logger.error(
|
logger.error(
|
||||||
"Error adding nameserver, code was %s error was %s"
|
"Error adding nameserver, code was %s error was %s"
|
||||||
% (e.code, e)
|
% (e.code, e)
|
||||||
)
|
)
|
||||||
|
# elif createdCode == ErrorCode.OBJECT_EXISTS:
|
||||||
|
# count += 1
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# should we check for contacts?
|
if len(count) >= 2 or len(count) <= 13:
|
||||||
# check if there are 2 or more name servers or 13 (inclusive)
|
self.ready()
|
||||||
self.ready()
|
self.save()
|
||||||
self.save()
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.info(
|
logger.info(
|
||||||
"nameserver setter checked for create state "
|
"nameserver setter checked for create state "
|
||||||
|
@ -847,8 +851,8 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
nameserverList = self.nameservers
|
nameserverList = self.nameservers
|
||||||
logger.info("Changing to ready state")
|
logger.info("Changing to ready state")
|
||||||
# TEST THIS -- assertValue or print (trigger this)
|
# TEST THIS -- assertValue or print (trigger this)
|
||||||
if len(nameserverList) < 2 or len(nameserverList) > 13:
|
# if len(nameserverList) < 2 or len(nameserverList) > 13:
|
||||||
raise ValueError("Not ready to become created, cannot transition yet")
|
# raise ValueError("Not ready to become created, cannot transition yet")
|
||||||
logger.info("able to transition to ready state")
|
logger.info("able to transition to ready state")
|
||||||
|
|
||||||
def _disclose_fields(self, contact: PublicContact):
|
def _disclose_fields(self, contact: PublicContact):
|
||||||
|
|
|
@ -554,12 +554,14 @@ class MockEppLib(TestCase):
|
||||||
contacts=...,
|
contacts=...,
|
||||||
hosts=...,
|
hosts=...,
|
||||||
statuses=...,
|
statuses=...,
|
||||||
|
avail=...,
|
||||||
):
|
):
|
||||||
self.auth_info = auth_info
|
self.auth_info = auth_info
|
||||||
self.cr_date = cr_date
|
self.cr_date = cr_date
|
||||||
self.contacts = contacts
|
self.contacts = contacts
|
||||||
self.hosts = hosts
|
self.hosts = hosts
|
||||||
self.statuses = statuses
|
self.statuses = statuses
|
||||||
|
self.avail = avail
|
||||||
|
|
||||||
mockDataInfoDomain = fakedEppObject(
|
mockDataInfoDomain = fakedEppObject(
|
||||||
"fakepw",
|
"fakepw",
|
||||||
|
@ -583,6 +585,9 @@ class MockEppLib(TestCase):
|
||||||
mockDataInfoHosts = fakedEppObject(
|
mockDataInfoHosts = fakedEppObject(
|
||||||
"lastPw", cr_date=datetime.datetime(2023, 8, 25, 19, 45, 35)
|
"lastPw", cr_date=datetime.datetime(2023, 8, 25, 19, 45, 35)
|
||||||
)
|
)
|
||||||
|
mockDataCheckHosts = fakedEppObject(
|
||||||
|
"lastPw", cr_date=datetime.datetime(2023, 8, 25, 19, 45, 35), avail=True,
|
||||||
|
)
|
||||||
|
|
||||||
def mockSend(self, _request, cleaned):
|
def mockSend(self, _request, cleaned):
|
||||||
"""Mocks the registry.send function used inside of domain.py
|
"""Mocks the registry.send function used inside of domain.py
|
||||||
|
@ -603,6 +608,10 @@ class MockEppLib(TestCase):
|
||||||
# use this for when a contact is being updated
|
# use this for when a contact is being updated
|
||||||
# sets the second send() to fail
|
# sets the second send() to fail
|
||||||
raise RegistryError(code=ErrorCode.OBJECT_EXISTS)
|
raise RegistryError(code=ErrorCode.OBJECT_EXISTS)
|
||||||
|
elif (isinstance(_request, commands.CheckHost)):
|
||||||
|
return MagicMock(res_data=[self.mockDataCheckHosts])
|
||||||
|
elif (isinstance(_request, commands.CreateHost)):
|
||||||
|
return MagicMock(res_data=[self.mockDataCheckHosts], code=ErrorCode.COMMAND_COMPLETED_SUCCESSFULLY)
|
||||||
return MagicMock(res_data=[self.mockDataInfoHosts])
|
return MagicMock(res_data=[self.mockDataInfoHosts])
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -523,7 +523,7 @@ class TestRegistrantContacts(MockEppLib):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
class TestRegistrantNameservers(TestCase):
|
class TestRegistrantNameservers(MockEppLib):
|
||||||
"""Rule: Registrants may modify their nameservers"""
|
"""Rule: Registrants may modify their nameservers"""
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -532,9 +532,9 @@ class TestRegistrantNameservers(TestCase):
|
||||||
Given the registrant is logged in
|
Given the registrant is logged in
|
||||||
And the registrant is the admin on a domain
|
And the registrant is the admin on a domain
|
||||||
"""
|
"""
|
||||||
pass
|
super().setUp()
|
||||||
|
self.domain, _ = Domain.objects.get_or_create(name="my-nameserver.gov", state=Domain.State.DNS_NEEDED)
|
||||||
|
|
||||||
@skip("not implemented yet")
|
|
||||||
def test_user_adds_one_nameserver(self):
|
def test_user_adds_one_nameserver(self):
|
||||||
"""
|
"""
|
||||||
Scenario: Registrant adds a single nameserver
|
Scenario: Registrant adds a single nameserver
|
||||||
|
@ -544,7 +544,28 @@ class TestRegistrantNameservers(TestCase):
|
||||||
to the registry
|
to the registry
|
||||||
And `domain.is_active` returns False
|
And `domain.is_active` returns False
|
||||||
"""
|
"""
|
||||||
raise
|
|
||||||
|
# set 1 nameserver
|
||||||
|
nameserver = "ns1.my-nameserver.com"
|
||||||
|
self.domain.nameservers = [(nameserver,)]
|
||||||
|
|
||||||
|
# when you create a host, you also have to update at same time
|
||||||
|
created_host = commands.CreateHost(nameserver)
|
||||||
|
update_domain_with_created = commands.UpdateDomain(name=self.domain.name, add=[common.HostObjSet([created_host.name])])
|
||||||
|
|
||||||
|
# checking if commands were sent (commands have to be sent in order)
|
||||||
|
expectedCalls = [
|
||||||
|
call(
|
||||||
|
commands.CheckHost([created_host.name]), cleaned=True
|
||||||
|
),
|
||||||
|
call(created_host, cleaned=True),
|
||||||
|
call(update_domain_with_created, cleaned=True),
|
||||||
|
]
|
||||||
|
|
||||||
|
self.mockedSendFunction.assert_has_calls(expectedCalls)
|
||||||
|
|
||||||
|
# check that status is still NOT READY
|
||||||
|
self.assertFalse(self.domain.is_active())
|
||||||
|
|
||||||
@skip("not implemented yet")
|
@skip("not implemented yet")
|
||||||
def test_user_adds_two_nameservers(self):
|
def test_user_adds_two_nameservers(self):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue