mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-03 16:32:15 +02:00
merge
This commit is contained in:
commit
6ca47a17c8
3 changed files with 264 additions and 1 deletions
101
src/registrar/tests/test_views_domains_json.py
Normal file
101
src/registrar/tests/test_views_domains_json.py
Normal file
|
@ -0,0 +1,101 @@
|
|||
from registrar.models import UserDomainRole, Domain
|
||||
from django.urls import reverse
|
||||
from .test_views import TestWithUser
|
||||
from django_webtest import WebTest # type: ignore
|
||||
|
||||
class GetDomainsJsonTest(TestWithUser, WebTest):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.app.set_user(self.user.username)
|
||||
|
||||
# Create test domains
|
||||
self.domain1 = Domain.objects.create(
|
||||
name='example1.com',
|
||||
expiration_date='2024-01-01',
|
||||
state='active'
|
||||
)
|
||||
self.domain2 = Domain.objects.create(
|
||||
name='example2.com',
|
||||
expiration_date='2024-02-01',
|
||||
state='inactive'
|
||||
)
|
||||
self.domain3 = Domain.objects.create(
|
||||
name='example3.com',
|
||||
expiration_date='2024-03-01',
|
||||
state='active'
|
||||
)
|
||||
|
||||
# Create UserDomainRoles
|
||||
UserDomainRole.objects.create(user=self.user, domain=self.domain1)
|
||||
UserDomainRole.objects.create(user=self.user, domain=self.domain2)
|
||||
UserDomainRole.objects.create(user=self.user, domain=self.domain3)
|
||||
|
||||
def test_get_domains_json_unauthenticated(self):
|
||||
# Logout the user
|
||||
self.app.reset()
|
||||
|
||||
response = self.client.get(reverse('get_domains_json'))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
def test_get_domains_json_authenticated(self):
|
||||
response = self.app.get(reverse('get_domains_json'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check pagination info
|
||||
self.assertEqual(data['page'], 1)
|
||||
self.assertFalse(data['has_next'])
|
||||
self.assertFalse(data['has_previous'])
|
||||
self.assertEqual(data['num_pages'], 1)
|
||||
|
||||
# Check domains
|
||||
self.assertEqual(len(data['domains']), 3)
|
||||
domain_ids = [domain['id'] for domain in data['domains']]
|
||||
self.assertIn(self.domain1.id, domain_ids)
|
||||
self.assertIn(self.domain2.id, domain_ids)
|
||||
self.assertIn(self.domain3.id, domain_ids)
|
||||
|
||||
def test_pagination(self):
|
||||
response = self.app.get(reverse('get_domains_json'), {'page': 1})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check pagination info
|
||||
self.assertEqual(data['page'], 1)
|
||||
self.assertFalse(data['has_next'])
|
||||
self.assertFalse(data['has_previous'])
|
||||
self.assertEqual(data['num_pages'], 1)
|
||||
|
||||
def test_sorting(self):
|
||||
response = self.app.get(reverse('get_domains_json'), {'sort_by': 'expiration_date', 'order': 'desc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by expiration_date in descending order
|
||||
expiration_dates = [domain['expiration_date'] for domain in data['domains']]
|
||||
self.assertEqual(expiration_dates, sorted(expiration_dates, reverse=True))
|
||||
|
||||
response = self.app.get(reverse('get_domains_json'), {'sort_by': 'expiration_date', 'order': 'asc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by expiration_date in ascending order
|
||||
expiration_dates = [domain['expiration_date'] for domain in data['domains']]
|
||||
self.assertEqual(expiration_dates, sorted(expiration_dates))
|
||||
|
||||
def test_sorting_by_state_display(self):
|
||||
response = self.app.get(reverse('get_domains_json'), {'sort_by': 'state_display', 'order': 'asc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by state_display in ascending order
|
||||
states = [domain['state_display'] for domain in data['domains']]
|
||||
self.assertEqual(states, sorted(states))
|
||||
|
||||
response = self.app.get(reverse('get_domains_json'), {'sort_by': 'state_display', 'order': 'desc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by state_display in descending order
|
||||
states = [domain['state_display'] for domain in data['domains']]
|
||||
self.assertEqual(states, sorted(states, reverse=True))
|
162
src/registrar/tests/test_views_requests_json.py
Normal file
162
src/registrar/tests/test_views_requests_json.py
Normal file
|
@ -0,0 +1,162 @@
|
|||
from django.test import Client
|
||||
from django.contrib.auth.models import User
|
||||
from registrar.models import DomainRequest
|
||||
from django.urls import reverse
|
||||
from .test_views import TestWithUser
|
||||
from django_webtest import WebTest # type: ignore
|
||||
|
||||
class DomainRequestViewTest(TestWithUser, WebTest):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.app.set_user(self.user.username)
|
||||
|
||||
# Create domain requests for the user
|
||||
self.domain_requests = [
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None, # Assuming requested_domain is an optional field
|
||||
submission_date="2024-01-01",
|
||||
status=DomainRequest.DomainRequestStatus.STARTED,
|
||||
created_at="2024-01-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-02-01",
|
||||
status=DomainRequest.DomainRequestStatus.WITHDRAWN,
|
||||
created_at="2024-02-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-03-01",
|
||||
status=DomainRequest.DomainRequestStatus.REJECTED,
|
||||
created_at="2024-03-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-04-01",
|
||||
status=DomainRequest.DomainRequestStatus.STARTED,
|
||||
created_at="2024-04-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None, # Assuming requested_domain is an optional field
|
||||
submission_date="2024-05-01",
|
||||
status=DomainRequest.DomainRequestStatus.STARTED,
|
||||
created_at="2024-05-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-06-01",
|
||||
status=DomainRequest.DomainRequestStatus.WITHDRAWN,
|
||||
created_at="2024-06-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-07-01",
|
||||
status=DomainRequest.DomainRequestStatus.REJECTED,
|
||||
created_at="2024-07-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-08-01",
|
||||
status=DomainRequest.DomainRequestStatus.STARTED,
|
||||
created_at="2024-08-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None, # Assuming requested_domain is an optional field
|
||||
submission_date="2024-09-01",
|
||||
status=DomainRequest.DomainRequestStatus.STARTED,
|
||||
created_at="2024-09-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-10-01",
|
||||
status=DomainRequest.DomainRequestStatus.WITHDRAWN,
|
||||
created_at="2024-10-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-11-01",
|
||||
status=DomainRequest.DomainRequestStatus.REJECTED,
|
||||
created_at="2024-11-01"
|
||||
),
|
||||
DomainRequest.objects.create(
|
||||
creator=self.user,
|
||||
requested_domain=None,
|
||||
submission_date="2024-12-01",
|
||||
status=DomainRequest.DomainRequestStatus.APPROVED,
|
||||
created_at="2024-12-01"
|
||||
)
|
||||
]
|
||||
|
||||
def test_get_domain_requests_json_authenticated(self):
|
||||
response = self.app.get(reverse('get_domain_requests_json'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check pagination info
|
||||
self.assertEqual(data['page'], 1)
|
||||
self.assertTrue(data['has_next'])
|
||||
self.assertFalse(data['has_previous'])
|
||||
self.assertEqual(data['num_pages'], 2)
|
||||
|
||||
# Check domain requests
|
||||
self.assertEqual(len(data['domain_requests']), 10)
|
||||
for domain_request in data['domain_requests']:
|
||||
self.assertNotEqual(domain_request['status'], 'Approved')
|
||||
|
||||
def test_pagination(self):
|
||||
response = self.app.get(reverse('get_domain_requests_json'), {'page': 1})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check pagination info
|
||||
self.assertEqual(data['page'], 1)
|
||||
self.assertTrue(data['has_next'])
|
||||
self.assertFalse(data['has_previous'])
|
||||
self.assertEqual(data['num_pages'], 2)
|
||||
|
||||
response = self.app.get(reverse('get_domain_requests_json'), {'page': 2})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check pagination info
|
||||
self.assertEqual(data['page'], 2)
|
||||
self.assertFalse(data['has_next'])
|
||||
self.assertTrue(data['has_previous'])
|
||||
self.assertEqual(data['num_pages'], 2)
|
||||
|
||||
def test_sorting(self):
|
||||
response = self.app.get(reverse('get_domain_requests_json'), {'sort_by': 'submission_date', 'order': 'desc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by submission_date in descending order
|
||||
submission_dates = [req['submission_date'] for req in data['domain_requests']]
|
||||
self.assertEqual(submission_dates, sorted(submission_dates, reverse=True))
|
||||
|
||||
response = self.app.get(reverse('get_domain_requests_json'), {'sort_by': 'submission_date', 'order': 'asc'})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Check if sorted by submission_date in ascending order
|
||||
submission_dates = [req['submission_date'] for req in data['domain_requests']]
|
||||
self.assertEqual(submission_dates, sorted(submission_dates))
|
||||
|
||||
def test_filter_approved_excluded(self):
|
||||
response = self.app.get(reverse('get_domain_requests_json'))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
data = response.json
|
||||
|
||||
# Ensure no approved requests are included
|
||||
for domain_request in data['domain_requests']:
|
||||
self.assertNotEqual(domain_request['status'], DomainRequest.DomainRequestStatus.APPROVED)
|
|
@ -19,7 +19,7 @@ def get_domain_requests_json(request):
|
|||
sort_by = f'-{sort_by}'
|
||||
domain_requests = domain_requests.order_by(sort_by)
|
||||
page_number = request.GET.get('page', 1)
|
||||
paginator = Paginator(domain_requests, 4) # Adjust the number of items per page as needed
|
||||
paginator = Paginator(domain_requests, 10) # Adjust the number of items per page as needed
|
||||
page_obj = paginator.get_page(page_number)
|
||||
|
||||
domain_requests_data = [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue