Add some logging

This commit is contained in:
zandercymatics 2024-07-19 09:59:19 -06:00
parent 338df10b03
commit 0aa3b8f899
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
2 changed files with 28 additions and 22 deletions

View file

@ -1,7 +1,7 @@
import io import io
from django.test import Client, RequestFactory from django.test import Client, RequestFactory, TestCase
from io import StringIO from io import StringIO
from registrar.models import DomainRequest, Domain, DomainInformation, UserDomainRole, User from registrar.models import DomainRequest, Domain, DomainInformation, UserDomainRole, User, PublicContact, DomainInvitation, FederalAgency
from registrar.utility.csv_export import ( from registrar.utility.csv_export import (
DomainDataFull, DomainDataFull,
DomainDataType, DomainDataType,
@ -200,22 +200,28 @@ class CsvReportsTest(MockDb):
# There seems to be a data interference issue with MockDb that affects only # There seems to be a data interference issue with MockDb that affects only
# the entire test suite. For this test, we forgo that for now. # the entire test suite. For this test, we forgo that for now.
class ExportDataTestUserFacing(MockEppLib): class ExportDataTestUserFacing(TestCase):
"""Tests our data exports for users""" """Tests our data exports for users"""
def setUp(self): def setUp(self):
super().setUp()
self.factory = RequestFactory() self.factory = RequestFactory()
def tearDown(self): def tearDown(self):
super().tearDown() PublicContact.objects.all().delete()
Domain.objects.all().delete()
DomainInformation.objects.all().delete()
DomainRequest.objects.all().delete()
User.objects.all().delete()
UserDomainRole.objects.all().delete()
DomainInvitation.objects.all().delete()
FederalAgency.objects.all().delete()
@less_console_noise_decorator #@less_console_noise_decorator
def test_domain_data_type_user(self): def test_domain_data_type_user(self):
"""Shows security contacts, domain managers, so for the current user""" """Shows security contacts, domain managers, so for the current user"""
p = "userpass" p = "userpass"
unrelated_user = User.objects.create_user( unrelated_user = User.objects.create(
username="unrelatedUser", username="unrelatedUser",
email="unrelatedUser@example.com", email="unrelatedUser@example.com",
first_name="firstName", first_name="firstName",
@ -224,30 +230,26 @@ class ExportDataTestUserFacing(MockEppLib):
) )
# We add these here due to a data interference issue with MockDB # We add these here due to a data interference issue with MockDB
new_domain_1, _ = Domain.objects.get_or_create(name="interfere.gov", state=Domain.State.READY) new_domain_1 = Domain.objects.create(name="interfere.gov", state=Domain.State.READY)
new_domain_2, _ = Domain.objects.get_or_create(name="somedomain123.gov", state=Domain.State.DNS_NEEDED) new_domain_2 = Domain.objects.create(name="somedomain1234.gov", state=Domain.State.DNS_NEEDED)
new_domain_3, _ = Domain.objects.get_or_create(name="noaccess.gov", state=Domain.State.ON_HOLD) new_domain_3 = Domain.objects.create(name="noaccess.gov", state=Domain.State.ON_HOLD)
DomainInformation.objects.get_or_create( DomainInformation.objects.create(
creator=unrelated_user, creator=unrelated_user,
domain=new_domain_1, domain=new_domain_1,
generic_org_type="federal", generic_org_type="federal",
federal_type="executive", federal_type="executive",
is_election_board=False, is_election_board=False,
) )
DomainInformation.objects.get_or_create( DomainInformation.objects.create(
creator=unrelated_user, domain=new_domain_2, generic_org_type="interstate", is_election_board=True creator=unrelated_user, domain=new_domain_2, generic_org_type="interstate", is_election_board=True
) )
DomainInformation.objects.get_or_create( DomainInformation.objects.create(
creator=unrelated_user, creator=unrelated_user,
domain=new_domain_3, domain=new_domain_3,
generic_org_type="federal", generic_org_type="federal",
is_election_board=False, is_election_board=False,
) )
# Invoke setter
new_domain_1.security_contact
new_domain_2.security_contact
new_domain_3.security_contact
# Create a user and associate it with some domains # Create a user and associate it with some domains
user = create_user() user = create_user()
@ -258,6 +260,7 @@ class ExportDataTestUserFacing(MockEppLib):
request = self.factory.get("/") request = self.factory.get("/")
request.user = user request.user = user
print(f"what is the request? {request}")
# Create a CSV file in memory # Create a CSV file in memory
csv_file = StringIO() csv_file = StringIO()
# Call the export functions # Call the export functions
@ -271,10 +274,10 @@ class ExportDataTestUserFacing(MockEppLib):
expected_content = ( expected_content = (
"Domain name,Status,First ready on,Expiration date,Domain type,Agency,Organization name,City," "Domain name,Status,First ready on,Expiration date,Domain type,Agency,Organization name,City,"
"State,SO,SO email,Security contact email,Domain managers,Invited domain managers\n" "State,SO,SO email,Security contact email,Domain managers,Invited domain managers\n"
"interfere.gov,Ready,(blank),2023-05-25,Federal - Executive,,," "interfere.gov,Ready,(blank),(blank),Federal - Executive,,,"
", ,,security@mail.gov,staff@example.com,\n" ", ,,(blank),staff@example.com,\n"
"somedomain123.gov,Dns needed,(blank),2023-05-25,Interstate,,,,, ,," "somedomain123.gov,Dns needed,(blank),(blank),Interstate,,,,, ,,"
"security@mail.gov,staff@example.com,\n" "(blank),staff@example.com,\n"
) )
# Normalize line endings and remove commas, # Normalize line endings and remove commas,

View file

@ -565,10 +565,13 @@ class DomainDataTypeUser(DomainDataType):
Get a Q object of filter conditions to filter when building queryset. Get a Q object of filter conditions to filter when building queryset.
""" """
if request is None or not hasattr(request, "user") or not request.user: if request is None or not hasattr(request, "user") or not request.user:
return Q() # Return nothing
logger.info(f"returning nothing: {request}")
return Q(id__in=[])
user_domain_roles = UserDomainRole.objects.filter(user=request.user) user_domain_roles = UserDomainRole.objects.filter(user=request.user)
domain_ids = user_domain_roles.values_list("domain_id", flat=True) domain_ids = user_domain_roles.values_list("domain_id", flat=True)
logger.info(f"roles: {user_domain_roles} ids: {domain_ids}")
return Q(id__in=domain_ids) return Q(id__in=domain_ids)