Solidify json unit tests

This commit is contained in:
Rachid Mrad 2024-05-30 15:20:10 -04:00
parent db985cb3d7
commit f8c14ea36a
No known key found for this signature in database
6 changed files with 107 additions and 20 deletions

View file

@ -2,6 +2,8 @@ from registrar.models import DomainRequest
from django.urls import reverse
from .test_views import TestWithUser
from django_webtest import WebTest # type: ignore
from datetime import datetime
from django.utils.dateparse import parse_datetime
class DomainRequestViewTest(TestWithUser, WebTest):
@ -88,6 +90,13 @@ class DomainRequestViewTest(TestWithUser, WebTest):
status=DomainRequest.DomainRequestStatus.REJECTED,
created_at="2024-11-01",
),
DomainRequest.objects.create(
creator=self.user,
requested_domain=None,
submission_date="2024-11-02",
status=DomainRequest.DomainRequestStatus.WITHDRAWN,
created_at="2024-11-02",
),
DomainRequest.objects.create(
creator=self.user,
requested_domain=None,
@ -97,8 +106,12 @@ class DomainRequestViewTest(TestWithUser, WebTest):
),
]
def tearDown(self):
super().tearDown()
DomainRequest.objects.all().delete()
def test_get_domain_requests_json_authenticated(self):
"""test that domain requests are returned properly for an authenticated user"""
"""Test that domain requests are returned properly for an authenticated user."""
response = self.app.get(reverse("get_domain_requests_json"))
self.assertEqual(response.status_code, 200)
data = response.json
@ -109,10 +122,33 @@ class DomainRequestViewTest(TestWithUser, WebTest):
self.assertFalse(data["has_previous"])
self.assertEqual(data["num_pages"], 2)
# Check domain requests
# Check the number of domain requests
self.assertEqual(len(data["domain_requests"]), 10)
for domain_request in data["domain_requests"]:
self.assertNotEqual(domain_request["status"], "Approved")
# Extract fields from response
requested_domains = [request["requested_domain"] for request in data["domain_requests"]]
submission_dates = [request["submission_date"] for request in data["domain_requests"]]
statuses = [request["status"] for request in data["domain_requests"]]
created_ats = [request["created_at"] for request in data["domain_requests"]]
ids = [request["id"] for request in data["domain_requests"]]
is_deletables = [request["is_deletable"] for request in data["domain_requests"]]
# Check fields for each domain request
for i in range(10):
self.assertNotEqual(data["domain_requests"][i]["status"], "Approved")
self.assertEqual(self.domain_requests[i].requested_domain.name if self.domain_requests[i].requested_domain else None, requested_domains[i])
self.assertEqual(self.domain_requests[i].submission_date, submission_dates[i])
self.assertEqual(self.domain_requests[i].get_status_display(), statuses[i])
self.assertEqual(parse_datetime(self.domain_requests[i].created_at.isoformat()), parse_datetime(created_ats[i]))
self.assertEqual(self.domain_requests[i].id, ids[i])
# Check is_deletable
is_deletable_expected = self.domain_requests[i].status in [
DomainRequest.DomainRequestStatus.STARTED,
DomainRequest.DomainRequestStatus.WITHDRAWN
]
self.assertEqual(is_deletable_expected, is_deletables[i])
def test_pagination(self):
"""Test that pagination works properly. There are 11 total non-approved requests and