From 1890cc8f26a3c845e2f0f40faae636d90696a168 Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Mon, 13 Nov 2023 08:16:51 -0700 Subject: [PATCH] Add better error messages --- .../commands/load_transition_domain.py | 17 +++++++++++++++++ .../utility/extra_transition_domain_helper.py | 14 ++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/registrar/management/commands/load_transition_domain.py b/src/registrar/management/commands/load_transition_domain.py index 79fe83022..2a92ca8fe 100644 --- a/src/registrar/management/commands/load_transition_domain.py +++ b/src/registrar/management/commands/load_transition_domain.py @@ -1,4 +1,5 @@ import json +import os import sys import csv import logging @@ -426,6 +427,22 @@ class Command(BaseCommand): # print message to terminal about which args are in use self.print_debug_mode_statements(debug_on, debug_max_entries_to_parse) + filenames = [ + agency_adhoc_filename, + domain_adhoc_filename, + organization_adhoc_filename, + domain_escrow_filename, + domain_additional_filename, + ] + + # Do a top-level check to see if these files exist + for filename in filenames: + if not isinstance(filename, str): + raise TypeError(f"Filename must be a string, got {type(filename).__name__}") + full_path = os.path.join(directory, filename) + if not os.path.isfile(full_path): + raise FileNotFoundError(full_path) + # STEP 1: # Create mapping of domain name -> status domain_status_dictionary = self.get_domain_user_dict( diff --git a/src/registrar/management/commands/utility/extra_transition_domain_helper.py b/src/registrar/management/commands/utility/extra_transition_domain_helper.py index eb73125e1..488718d0b 100644 --- a/src/registrar/management/commands/utility/extra_transition_domain_helper.py +++ b/src/registrar/management/commands/utility/extra_transition_domain_helper.py @@ -867,8 +867,11 @@ class ExtraTransitionDomain: ) else: if not infer_filenames: - logger.error(f"Could not find file: {filename}") - continue + raise FileNotFoundError( + f"{TerminalColors.FAIL}" + f"Could not find file {filename} for {name}" + f"{TerminalColors.ENDC}" + ) # Infer filename logic # # This mode is used for @@ -899,8 +902,11 @@ class ExtraTransitionDomain: is_domain_escrow, ) continue - # Log if we can't find the desired file - logger.error(f"Could not find file: {filename}") + raise FileNotFoundError( + f"{TerminalColors.FAIL}" + f"Could not find file {filename} for {name}" + f"{TerminalColors.ENDC}" + ) def clear_file_data(self): for item in self.file_data.values():