Merge pull request #1185 from cisagov/rh/687-formatting-nameservers

Ticket #687: Formatting for nameservers
This commit is contained in:
Rebecca H 2023-10-30 09:43:59 -07:00 committed by GitHub
commit 2be82f0468
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 109 additions and 4 deletions

View file

@ -256,7 +256,6 @@ class Domain(TimeStampedModel, DomainHelper):
hostList = []
for host in hosts:
hostList.append((host["name"], host["addrs"]))
return hostList
def _create_host(self, host, addrs):

View file

@ -29,7 +29,7 @@
{% url 'domain-dns-nameservers' pk=domain.id as url %}
{% if domain.nameservers|length > 0 %}
{% include "includes/summary_item.html" with title='DNS name servers' value=domain.nameservers list='true' edit_link=url %}
{% include "includes/summary_item.html" with title='DNS name servers' domains='true' value=domain.nameservers list='true' edit_link=url %}
{% else %}
<h2 class="margin-top-neg-1"> DNS name servers </h2>
<p> No DNS name servers have been added yet. Before your domain can be used well need information about your domain name servers.</p>

View file

@ -43,7 +43,6 @@
{% else %}
{% include "includes/contact.html" with contact=value %}
{% endif %}
<!-- TODO #687 add here another elif for nameservers to show item Ips -->
{% elif list %}
{% if value|length == 1 %}
{% if users %}
@ -56,6 +55,17 @@
{% for item in value %}
{% if users %}
<li>{{ item.user.email }}</li>
{% elif domains %}
<li>
{{ item.0 }}
{% if item.1 %}
({% spaceless %}
{% for addr in item.1 %}
{{addr}}{% if not forloop.last %}, {% endif %}
{% endfor %}
{% endspaceless %})
{% endif %}
</li>
{% else %}
<li>{{ item }}</li>
{% endif %}

View file

@ -738,6 +738,7 @@ class MockEppLib(TestCase):
"ns1.cats-are-superior3.com",
],
)
infoDomainNoHost = fakedEppObject(
"my-nameserver.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
@ -793,7 +794,20 @@ class MockEppLib(TestCase):
infoDomainHasIP = fakedEppObject(
"nameserverwithip.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
contacts=[],
contacts=[
common.DomainContact(
contact="securityContact",
type=PublicContact.ContactTypeChoices.SECURITY,
),
common.DomainContact(
contact="technicalContact",
type=PublicContact.ContactTypeChoices.TECHNICAL,
),
common.DomainContact(
contact="adminContact",
type=PublicContact.ContactTypeChoices.ADMINISTRATIVE,
),
],
hosts=[
"ns1.nameserverwithip.gov",
"ns2.nameserverwithip.gov",
@ -802,6 +816,29 @@ class MockEppLib(TestCase):
addrs=["1.2.3.4", "2.3.4.5"],
)
justNameserver = fakedEppObject(
"justnameserver.com",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
contacts=[
common.DomainContact(
contact="securityContact",
type=PublicContact.ContactTypeChoices.SECURITY,
),
common.DomainContact(
contact="technicalContact",
type=PublicContact.ContactTypeChoices.TECHNICAL,
),
common.DomainContact(
contact="adminContact",
type=PublicContact.ContactTypeChoices.ADMINISTRATIVE,
),
],
hosts=[
"ns1.justnameserver.com",
"ns2.justnameserver.com",
],
)
infoDomainCheckHostIPCombo = fakedEppObject(
"nameserversubdomain.gov",
cr_date=datetime.datetime(2023, 5, 25, 19, 45, 35),
@ -922,6 +959,7 @@ class MockEppLib(TestCase):
"threenameserversDomain.gov": (self.infoDomainThreeHosts, None),
"defaultsecurity.gov": (self.InfoDomainWithDefaultSecurityContact, None),
"defaulttechnical.gov": (self.InfoDomainWithDefaultTechnicalContact, None),
"justnameserver.com": (self.justNameserver, None),
}
# Retrieve the corresponding values from the dictionary

View file

@ -1095,6 +1095,13 @@ class TestWithDomainPermissions(TestWithUser):
def setUp(self):
super().setUp()
self.domain, _ = Domain.objects.get_or_create(name="igorville.gov")
self.domain_with_ip, _ = Domain.objects.get_or_create(
name="nameserverwithip.gov"
)
self.domain_just_nameserver, _ = Domain.objects.get_or_create(
name="justnameserver.com"
)
self.domain_dsdata, _ = Domain.objects.get_or_create(name="dnssec-dsdata.gov")
self.domain_multdsdata, _ = Domain.objects.get_or_create(
name="dnssec-multdsdata.gov"
@ -1104,9 +1111,11 @@ class TestWithDomainPermissions(TestWithUser):
self.domain_dnssec_none, _ = Domain.objects.get_or_create(
name="dnssec-none.gov"
)
self.domain_information, _ = DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain
)
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_dsdata
)
@ -1116,9 +1125,17 @@ class TestWithDomainPermissions(TestWithUser):
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_dnssec_none
)
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_with_ip
)
DomainInformation.objects.get_or_create(
creator=self.user, domain=self.domain_just_nameserver
)
self.role, _ = UserDomainRole.objects.get_or_create(
user=self.user, domain=self.domain, role=UserDomainRole.Roles.MANAGER
)
UserDomainRole.objects.get_or_create(
user=self.user, domain=self.domain_dsdata, role=UserDomainRole.Roles.MANAGER
)
@ -1132,6 +1149,16 @@ class TestWithDomainPermissions(TestWithUser):
domain=self.domain_dnssec_none,
role=UserDomainRole.Roles.MANAGER,
)
UserDomainRole.objects.get_or_create(
user=self.user,
domain=self.domain_with_ip,
role=UserDomainRole.Roles.MANAGER,
)
UserDomainRole.objects.get_or_create(
user=self.user,
domain=self.domain_just_nameserver,
role=UserDomainRole.Roles.MANAGER,
)
def tearDown(self):
try:
@ -1215,6 +1242,37 @@ class TestDomainOverview(TestWithDomainPermissions, WebTest):
response = self.client.get(reverse("domain", kwargs={"pk": self.domain.id}))
self.assertEqual(response.status_code, 403)
def test_domain_see_just_nameserver(self):
home_page = self.app.get("/")
self.assertContains(home_page, "justnameserver.com")
# View nameserver on Domain Overview page
detail_page = self.app.get(
reverse("domain", kwargs={"pk": self.domain_just_nameserver.id})
)
self.assertContains(detail_page, "justnameserver.com")
self.assertContains(detail_page, "ns1.justnameserver.com")
self.assertContains(detail_page, "ns2.justnameserver.com")
def test_domain_see_nameserver_and_ip(self):
home_page = self.app.get("/")
self.assertContains(home_page, "nameserverwithip.gov")
# View nameserver on Domain Overview page
detail_page = self.app.get(
reverse("domain", kwargs={"pk": self.domain_with_ip.id})
)
self.assertContains(detail_page, "nameserverwithip.gov")
self.assertContains(detail_page, "ns1.nameserverwithip.gov")
self.assertContains(detail_page, "ns2.nameserverwithip.gov")
self.assertContains(detail_page, "ns3.nameserverwithip.gov")
# Splitting IP addresses bc there is odd whitespace and can't strip text
self.assertContains(detail_page, "(1.2.3.4,")
self.assertContains(detail_page, "2.3.4.5)")
class TestDomainManagers(TestDomainOverview):
def test_domain_managers(self):