diff --git a/src/registrar/tests/test_reports.py b/src/registrar/tests/test_reports.py index c82b928bb..dae2ca2a0 100644 --- a/src/registrar/tests/test_reports.py +++ b/src/registrar/tests/test_reports.py @@ -225,7 +225,7 @@ class ExportDataTestUserFacing(TestCase): DomainInvitation.objects.all().delete() FederalAgency.objects.all().delete() - # @less_console_noise_decorator + @less_console_noise_decorator def test_domain_data_type_user(self): """Shows security contacts, domain managers, so for the current user""" @@ -269,32 +269,17 @@ class ExportDataTestUserFacing(TestCase): request = self.factory.get("/") request.user = user - print(f"what is the request? {request}") # Create a CSV file in memory csv_file = StringIO() + # Call the export functions - DomainDataTypeUser.export_data_to_csv(csv_file, request=request) - # Reset the CSV file's position to the beginning - csv_file.seek(0) - # Read the content into a variable - csv_content = csv_file.read() + rows = DomainDataTypeUser.export_data_to_csv(csv_file, request=request) + # Extract domain names from the list + domain_names = [row[0] for row in rows] - # We expect only domains associated with the user - expected_content = ( - "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" - "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) + self.assertIn("interfere.gov", domain_names) + self.assertIn("somedomain1234.gov", domain_names) + self.assertNotIn("noaccess.gov", domain_names) class ExportDataTest(MockDb, MockEppLib): diff --git a/src/registrar/utility/csv_export.py b/src/registrar/utility/csv_export.py index f77f215d9..a05ba504d 100644 --- a/src/registrar/utility/csv_export.py +++ b/src/registrar/utility/csv_export.py @@ -230,7 +230,10 @@ class BaseExport(ABC): cls.write_csv_before(writer, **export_kwargs) # 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 def write_csv( @@ -257,6 +260,9 @@ class BaseExport(ABC): writer.writerows(rows) + # Return rows for easier parsing and testing + return rows + @classmethod @abstractmethod def parse_row(cls, columns, model): @@ -559,11 +565,6 @@ class DomainDataTypeUser(DomainDataType): 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 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: # Return nothing - logger.warning(f"returning nothing: {request}") return Q(id__in=[]) user_domain_roles = UserDomainRole.objects.filter(user=request.user) 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)