mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-12 14:08:28 +02:00
Try a different test approach
This commit is contained in:
parent
0aa1309843
commit
7d88a13676
2 changed files with 15 additions and 31 deletions
|
@ -225,7 +225,7 @@ class ExportDataTestUserFacing(TestCase):
|
||||||
DomainInvitation.objects.all().delete()
|
DomainInvitation.objects.all().delete()
|
||||||
FederalAgency.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"""
|
||||||
|
|
||||||
|
@ -269,32 +269,17 @@ class ExportDataTestUserFacing(TestCase):
|
||||||
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
|
||||||
DomainDataTypeUser.export_data_to_csv(csv_file, request=request)
|
rows = DomainDataTypeUser.export_data_to_csv(csv_file, request=request)
|
||||||
# Reset the CSV file's position to the beginning
|
# Extract domain names from the list
|
||||||
csv_file.seek(0)
|
domain_names = [row[0] for row in rows]
|
||||||
# Read the content into a variable
|
|
||||||
csv_content = csv_file.read()
|
|
||||||
|
|
||||||
# We expect only domains associated with the user
|
self.assertIn("interfere.gov", domain_names)
|
||||||
expected_content = (
|
self.assertIn("somedomain1234.gov", domain_names)
|
||||||
"Domain name,Status,First ready on,Expiration date,Domain type,Agency,Organization name,City,"
|
self.assertNotIn("noaccess.gov", domain_names)
|
||||||
"State,SO,SO email,Security contact email,Domain managers,Invited domain managers\n"
|
|
||||||
"interfere.gov,Ready,(blank),(blank),Federal - Executive,,,"
|
|
||||||
", ,,(blank),staff@example.com,\n"
|
|
||||||
"somedomain1234.gov,Dns needed,(blank),(blank),Interstate,,,,, ,,"
|
|
||||||
"(blank),staff@example.com,\n"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Normalize line endings and remove commas,
|
|
||||||
# spaces and leading/trailing whitespace
|
|
||||||
csv_content = csv_content.replace(",,", "").replace(",", "").replace(" ", "").replace("\r\n", "\n").strip()
|
|
||||||
expected_content = expected_content.replace(",,", "").replace(",", "").replace(" ", "").strip()
|
|
||||||
self.maxDiff = None
|
|
||||||
self.assertEqual(csv_content, expected_content)
|
|
||||||
|
|
||||||
|
|
||||||
class ExportDataTest(MockDb, MockEppLib):
|
class ExportDataTest(MockDb, MockEppLib):
|
||||||
|
|
|
@ -230,7 +230,10 @@ class BaseExport(ABC):
|
||||||
cls.write_csv_before(writer, **export_kwargs)
|
cls.write_csv_before(writer, **export_kwargs)
|
||||||
|
|
||||||
# Write the csv file
|
# Write the csv file
|
||||||
cls.write_csv(writer, columns, models_dict)
|
rows = cls.write_csv(writer, columns, models_dict)
|
||||||
|
|
||||||
|
# Return rows that for easier parsing and testing
|
||||||
|
return rows
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def write_csv(
|
def write_csv(
|
||||||
|
@ -257,6 +260,9 @@ class BaseExport(ABC):
|
||||||
|
|
||||||
writer.writerows(rows)
|
writer.writerows(rows)
|
||||||
|
|
||||||
|
# Return rows for easier parsing and testing
|
||||||
|
return rows
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def parse_row(cls, columns, model):
|
def parse_row(cls, columns, model):
|
||||||
|
@ -559,11 +565,6 @@ class DomainDataTypeUser(DomainDataType):
|
||||||
The DomainDataType report, but sliced on the current request user
|
The DomainDataType report, but sliced on the current request user
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def export_data_to_csv(cls, csv_file, request=None):
|
|
||||||
logger.warning("in export_data_to_csv")
|
|
||||||
super().export_data_to_csv(csv_file, request=request)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_filter_conditions(cls, request=None):
|
def get_filter_conditions(cls, request=None):
|
||||||
"""
|
"""
|
||||||
|
@ -571,12 +572,10 @@ class DomainDataTypeUser(DomainDataType):
|
||||||
"""
|
"""
|
||||||
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 nothing
|
# Return nothing
|
||||||
logger.warning(f"returning nothing: {request}")
|
|
||||||
return Q(id__in=[])
|
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.warning(f"roles: {user_domain_roles} ids: {domain_ids}")
|
|
||||||
return Q(id__in=domain_ids)
|
return Q(id__in=domain_ids)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue