Add more mocks

This commit is contained in:
zandercymatics 2023-12-21 12:12:14 -07:00
parent bf46be5cbc
commit ad9e64f063
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 145 additions and 87 deletions

View file

@ -26,6 +26,7 @@ from registrar.models.user_domain_role import UserDomainRole
from .common import (
completed_application,
generic_domain_object,
less_console_noise,
mock_user,
create_superuser,
create_user,
@ -348,6 +349,7 @@ class TestDomainApplicationAdmin(MockEppLib):
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Create a sample application
application = completed_application()
@ -389,6 +391,7 @@ class TestDomainApplicationAdmin(MockEppLib):
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Create a sample application
application = completed_application(status=DomainApplication.ApplicationStatus.SUBMITTED)
@ -430,6 +433,7 @@ class TestDomainApplicationAdmin(MockEppLib):
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Create a sample application
application = completed_application(status=DomainApplication.ApplicationStatus.IN_REVIEW)
@ -461,6 +465,7 @@ class TestDomainApplicationAdmin(MockEppLib):
# Perform assertions on the mock call itself
mock_client_instance.send_email.assert_called_once()
@boto3_mocking.patching
def test_save_model_sets_approved_domain(self):
# make sure there is no user with this email
EMAIL = "mayor@igorville.gov"
@ -472,6 +477,9 @@ class TestDomainApplicationAdmin(MockEppLib):
# Create a mock request
request = self.factory.post("/admin/registrar/domainapplication/{}/change/".format(application.pk))
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Modify the application's property
application.status = DomainApplication.ApplicationStatus.APPROVED
@ -491,6 +499,7 @@ class TestDomainApplicationAdmin(MockEppLib):
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Create a sample application
application = completed_application(status=DomainApplication.ApplicationStatus.IN_REVIEW)
@ -532,6 +541,7 @@ class TestDomainApplicationAdmin(MockEppLib):
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Create a sample application
application = completed_application(status=DomainApplication.ApplicationStatus.IN_REVIEW)
@ -563,6 +573,7 @@ class TestDomainApplicationAdmin(MockEppLib):
# Perform assertions on the mock call itself
mock_client_instance.send_email.assert_called_once()
@boto3_mocking.patching
def test_save_model_sets_restricted_status_on_user(self):
# make sure there is no user with this email
EMAIL = "mayor@igorville.gov"
@ -574,6 +585,9 @@ class TestDomainApplicationAdmin(MockEppLib):
# Create a mock request
request = self.factory.post("/admin/registrar/domainapplication/{}/change/".format(application.pk))
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# Modify the application's property
application.status = DomainApplication.ApplicationStatus.INELIGIBLE

View file

@ -260,6 +260,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.in_review()
@ -326,6 +327,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.action_needed()
@ -381,6 +383,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.approve()
@ -436,6 +439,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.withdraw()
@ -491,6 +495,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.reject()
@ -578,6 +583,7 @@ class TestDomainApplication(TestCase):
mock_client = MockSESClient
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
with self.assertRaises(TransitionNotAllowed):
application.reject_with_prejudice()
@ -629,10 +635,15 @@ class TestPermissions(TestCase):
"""Test the User-Domain-Role connection."""
@boto3_mocking.patching
def test_approval_creates_role(self):
draft_domain, _ = DraftDomain.objects.get_or_create(name="igorville.gov")
user, _ = User.objects.get_or_create()
application = DomainApplication.objects.create(creator=user, requested_domain=draft_domain)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# skip using the submit method
application.status = DomainApplication.ApplicationStatus.SUBMITTED
application.approve()
@ -646,10 +657,15 @@ class TestDomainInfo(TestCase):
"""Test creation of Domain Information when approved."""
@boto3_mocking.patching
def test_approval_creates_info(self):
draft_domain, _ = DraftDomain.objects.get_or_create(name="igorville.gov")
user, _ = User.objects.get_or_create()
application = DomainApplication.objects.create(creator=user, requested_domain=draft_domain)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# skip using the submit method
application.status = DomainApplication.ApplicationStatus.SUBMITTED
application.approve()
@ -754,6 +770,7 @@ class TestUser(TestCase):
caps_email = "MAYOR@igorville.gov"
# mock the domain invitation save routine
with patch("registrar.models.DomainInvitation.save") as save_mock:
with less_console_noise():
DomainInvitation.objects.get_or_create(email=caps_email, domain=self.domain)
self.user.check_domain_invitations_on_login()
# if check_domain_invitations_on_login properly matches exactly one

View file

@ -29,8 +29,9 @@ from epplibwrapper import (
RegistryError,
ErrorCode,
)
from .common import MockEppLib
from .common import MockEppLib, less_console_noise
import logging
import boto3_mocking # type: ignore
logger = logging.getLogger(__name__)
@ -250,6 +251,7 @@ class TestDomainCache(MockEppLib):
class TestDomainCreation(MockEppLib):
"""Rule: An approved domain application must result in a domain"""
@boto3_mocking.patching
def test_approved_application_creates_domain_locally(self):
"""
Scenario: Analyst approves a domain application
@ -260,6 +262,10 @@ class TestDomainCreation(MockEppLib):
draft_domain, _ = DraftDomain.objects.get_or_create(name="igorville.gov")
user, _ = User.objects.get_or_create()
application = DomainApplication.objects.create(creator=user, requested_domain=draft_domain)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
# skip using the submit method
application.status = DomainApplication.ApplicationStatus.SUBMITTED
# transition to approve state

View file

@ -1349,6 +1349,7 @@ class TestDomainManagers(TestDomainOverview):
response = self.client.get(reverse("domain-users-add", kwargs={"pk": self.domain.id}))
self.assertContains(response, "Add a domain manager")
@boto3_mocking.patching
def test_domain_user_add_form(self):
"""Adding an existing user works."""
other_user, _ = get_user_model().objects.get_or_create(email="mayor@igorville.gov")
@ -1358,6 +1359,10 @@ class TestDomainManagers(TestDomainOverview):
add_page.form["email"] = "mayor@igorville.gov"
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
success_result = add_page.form.submit()
self.assertEqual(success_result.status_code, 302)
@ -1387,7 +1392,12 @@ class TestDomainManagers(TestDomainOverview):
session_id = self.app.cookies[settings.SESSION_COOKIE_NAME]
add_page.form["email"] = email_address
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
success_result = add_page.form.submit()
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
success_page = success_result.follow()
@ -1413,7 +1423,12 @@ class TestDomainManagers(TestDomainOverview):
session_id = self.app.cookies[settings.SESSION_COOKIE_NAME]
add_page.form["email"] = caps_email_address
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
success_result = add_page.form.submit()
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
success_page = success_result.follow()
@ -1433,6 +1448,7 @@ class TestDomainManagers(TestDomainOverview):
mock_client = MagicMock()
mock_client_instance = mock_client.return_value
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
add_page = self.app.get(reverse("domain-users-add", kwargs={"pk": self.domain.id}))
session_id = self.app.cookies[settings.SESSION_COOKIE_NAME]
add_page.form["email"] = email_address
@ -1478,6 +1494,10 @@ class TestDomainManagers(TestDomainOverview):
session_id = self.app.cookies[settings.SESSION_COOKIE_NAME]
add_page.form["email"] = email_address
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
mock_client = MagicMock()
with boto3_mocking.clients.handler_for("sesv2", mock_client):
with less_console_noise():
add_page.form.submit()
# user was invited, create them
@ -1533,6 +1553,7 @@ class TestDomainNameservers(TestDomainOverview):
# attempt to submit the form without two hosts, both subdomains,
# only one has ips
nameservers_page.form["form-1-server"] = "ns2.igorville.gov"
with less_console_noise(): # swallow log warning message
result = nameservers_page.form.submit()
# form submission was a post with an error, response should be a 200