4141}
4242
4343
44- class SeedTestData :
44+ class TestData :
45+
4546 def __init__ (self , description , vax_ods , actions : list , header = "NHS_NUMBER" ,
4647 success : bool = True , dose_amount = 0.5 , inject_char = False , version = 4 ,
4748 check_ack = False ):
@@ -55,15 +56,7 @@ def __init__(self, description, vax_ods, actions: list, header="NHS_NUMBER",
5556 self .inject_char = inject_char
5657 self .version = version
5758 self .check_ack = check_ack
58-
59-
60- class TestData :
61- def __init__ (self , file_name , success , description , action ):
62- self .file_name = file_name
63- self .success = success
64- self .description = description
65- self .action = action
66- self .key = None
59+ self .file_name = None
6760
6861
6962def generate_csv (dose_amount , action_flag , headers = "NHS_NUMBER" , same_id = False , version = "4" ,
@@ -197,12 +190,17 @@ def wait_for_ack_file(ack_prefix, input_file_name, timeout=1200):
197190 )
198191
199192
200- def poll_destination (input_file_name , check_ack : bool = False ):
193+ class DestinationType :
194+ INF = ACK_PREFIX
195+ BUS = FORWARDEDFILE_PREFIX
196+
197+
198+ def poll_destination (input_file_name , ack_prefix : DestinationType ):
201199 """Poll the ACK_BUCKET for an ack file that contains the input_file_name as a substring."""
202200
203201 filename_without_ext = input_file_name [:- 4 ] if input_file_name .endswith (".csv" ) else input_file_name
204202
205- ack_prefix = ACK_PREFIX if check_ack else FORWARDEDFILE_PREFIX
203+ # ack_prefix = ACK_PREFIX if sub_folder == DestinationType.INF else FORWARDEDFILE_PREFIX
206204
207205 search_pattern = f"{ ack_prefix } { filename_without_ext } "
208206 return poll_s3_file_pattern (ack_prefix , search_pattern )
@@ -525,33 +523,25 @@ def verify_final_ack_file(file_key):
525523
526524
527525def get_file_name (vax_type , ods , version = "4" ):
528- dt = datetime .now (timezone .utc )
529- timestamp = dt . strftime ( "%Y%m%dT%H%M%S%f" ) [:- 3 ]
526+ timestamp = datetime .now (timezone .utc ). strftime ( "%Y%m%dT%H%M%S00" )
527+ # timestamp = timestamp [:-3]
530528 return f"{ vax_type } _Vaccinations_v{ version } _{ ods } _{ timestamp } .csv"
531529
532530
533- def generate_csv_files (seed_data_list : list [SeedTestData ]) -> list [TestData ]:
534- """Generate CSV files based on a list of SeedTestData instances."""
535- test_data = []
531+ def generate_csv_files (seed_data_list : list [TestData ]) -> list [TestData ]:
532+ """Generate CSV files based on a list of TestData instances."""
536533 for seed_data in seed_data_list :
537- for action in seed_data .actions :
538- file_name = generate_csv (
539- dose_amount = seed_data .dose_amount ,
540- action_flag = action ,
541- headers = seed_data .header ,
542- same_id = seed_data .inject_char ,
543- vax_type = seed_data .vax ,
544- ods = seed_data .ods ,
545- )
546- test_data .append (TestData (file_name , seed_data .success , seed_data .description , action ))
547- return test_data
534+ file_name = (generate_csv_file (seed_data , actions = seed_data .actions ))
535+ seed_data .file_name = file_name
536+ return seed_data_list
548537
549538
550- def generate_csv_file (seed : SeedTestData , action : str ):
539+ def generate_csv_file (seed : TestData , actions : str ) -> str :
551540
552541 unique_id = str (uuid .uuid4 ())
553542 data = []
554- data .append (create_row (unique_id , seed .dose_amount , action , seed .header ))
543+ for action in actions :
544+ data .append (create_row (unique_id , seed .dose_amount , action , seed .header ))
555545 df = pd .DataFrame (data )
556546 file_name = get_file_name (seed .vax , seed .ods , seed .version )
557547 df .to_csv (file_name , index = False , sep = "|" , quoting = csv .QUOTE_MINIMAL )
0 commit comments