def test_from_csv(self): csv_file = os.path.join(TEST_FILE_DIR, "parameter_test.csv") # Test basic functionality with ScratchDir('.') as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) new_files, result, message = generate_protocol_files_from_csv( csv_file, output_directory=scratch_dir) self.assertEqual( len(os.listdir(os.path.join(scratch_dir, "procedures"))), 3) self.assertEqual(result, "error") # Test avoid overwriting file functionality with ScratchDir('.') as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) dumpfn({"hello": "world"}, os.path.join("procedures", "name_000007.000")) new_files, result, message = generate_protocol_files_from_csv( csv_file, output_directory=scratch_dir) post_file = loadfn(os.path.join("procedures", "name_000007.000")) self.assertEqual(post_file, {"hello": "world"}) self.assertEqual( len(os.listdir(os.path.join(scratch_dir, "procedures"))), 3) self.assertEqual(result, "error") self.assertEqual( message, { 'comment': 'Unable to find template: EXP-D3.000', 'error': 'Not Found' })
def test_from_csv_3(self): csv_file_list = os.path.join(TEST_FILE_DIR, "PreDiag_parameters - GP.csv") makedirs_p(os.path.join(TEST_FILE_DIR, "procedures")) makedirs_p(os.path.join(TEST_FILE_DIR, "names")) generate_protocol_files_from_csv(csv_file_list, TEST_FILE_DIR) self.assertEqual(len(os.listdir(os.path.join(TEST_FILE_DIR, "procedures"))), 192)
def test_from_csv_2(self): csv_file = os.path.join(TEST_FILE_DIR, "PredictionDiagnostics_parameters.csv") # Test basic functionality with ScratchDir('.') as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) generate_protocol_files_from_csv(csv_file, scratch_dir) self.assertEqual(len(os.listdir(os.path.join(scratch_dir, "procedures"))), 2) original = open(os.path.join(PROCEDURE_TEMPLATE_DIR, "diagnosticV2.000")).readlines() parsed = open(os.path.join(os.path.join(scratch_dir, "procedures"), "PredictionDiagnostics_000000.000")).readlines() self.assertFalse(list(difflib.unified_diff(original, parsed))) for line in difflib.unified_diff(original, parsed): self.assertIsNotNone(line) original = open(os.path.join(PROCEDURE_TEMPLATE_DIR, "diagnosticV3.000")).readlines() parsed = open(os.path.join(os.path.join(scratch_dir, "procedures"), "PredictionDiagnostics_000196.000")).readlines() diff = list(difflib.unified_diff(original, parsed)) diff_expected = ['--- \n', '+++ \n', '@@ -27,7 +27,7 @@\n', ' <SpecialType> </SpecialType>\n', ' <Oper> = </Oper>\n', ' <Step>002</Step>\n', '- <Value>03:00:00</Value>\n', '+ <Value>03:02:00</Value>\n', ' </EndEntry>\n', ' <EndEntry>\n', ' <EndType>Voltage </EndType>\n'] self.assertEqual(diff, diff_expected) for line in difflib.unified_diff(original, parsed): self.assertIsNotNone(line) _, namefile = os.path.split(csv_file) namefile = namefile.split('_')[0] + '_names_' namefile = namefile + datetime.datetime.now().strftime("%Y%m%d_%H%M") + '.csv' names_test = open(os.path.join(scratch_dir, "names", namefile)).readlines() self.assertEqual(names_test, ['PredictionDiagnostics_000000_\n', 'PredictionDiagnostics_000196_\n'])
def test_from_csv_3(self): csv_file_list = os.path.join(TEST_FILE_DIR, "PreDiag_parameters - GP.csv") makedirs_p(os.path.join(TEST_FILE_DIR, "procedures")) makedirs_p(os.path.join(TEST_FILE_DIR, "names")) generate_protocol_files_from_csv(csv_file_list, output_directory=TEST_FILE_DIR) if os.path.isfile( os.path.join(TEST_FILE_DIR, "procedures", ".DS_Store")): os.remove(os.path.join(TEST_FILE_DIR, "procedures", ".DS_Store")) self.assertEqual( len(os.listdir(os.path.join(TEST_FILE_DIR, "procedures"))), 265)
def test_from_csv(self): csv_file = os.path.join(TEST_FILE_DIR, "parameter_test.csv") # Test basic functionality with ScratchDir('.') as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) generate_protocol_files_from_csv(csv_file, scratch_dir) self.assertEqual(len(os.listdir(os.path.join(scratch_dir, "procedures"))), 3) # Test avoid overwriting file functionality with ScratchDir('.') as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) dumpfn({"hello": "world"}, "procedures/name_000007.000") generate_protocol_files_from_csv(csv_file, scratch_dir) post_file = loadfn("procedures/name_000007.000") self.assertEqual(post_file, {"hello": "world"}) self.assertEqual(len(os.listdir(os.path.join(scratch_dir, "procedures"))), 3)
def test_from_csv_2(self): csv_file = os.path.join(TEST_FILE_DIR, "PredictionDiagnostics_parameters.csv") # Test basic functionality with ScratchDir(".") as scratch_dir: makedirs_p(os.path.join(scratch_dir, "procedures")) makedirs_p(os.path.join(scratch_dir, "names")) new_files, result, message = generate_protocol_files_from_csv( csv_file, output_directory=scratch_dir) self.assertEqual(result, "success") self.assertEqual(message, { "comment": "Generated 2 protocols", "error": "" }) self.assertEqual( len(os.listdir(os.path.join(scratch_dir, "procedures"))), 2) original = open( os.path.join(PROCEDURE_TEMPLATE_DIR, "diagnosticV2.000")).readlines() parsed = open( os.path.join( os.path.join(scratch_dir, "procedures"), "PredictionDiagnostics_000000.000", )).readlines() self.assertFalse(list(difflib.unified_diff(original, parsed))) for line in difflib.unified_diff(original, parsed): self.assertIsNotNone(line) original = open( os.path.join(PROCEDURE_TEMPLATE_DIR, "diagnosticV3.000")).readlines() parsed = open( os.path.join( os.path.join(scratch_dir, "procedures"), "PredictionDiagnostics_000196.000", )).readlines() diff = list(difflib.unified_diff(original, parsed)) diff_expected = [ "--- \n", "+++ \n", "@@ -27,7 +27,7 @@\n", " <SpecialType> </SpecialType>\n", " <Oper> = </Oper>\n", " <Step>002</Step>\n", "- <Value>03:00:00</Value>\n", "+ <Value>03:12:00</Value>\n", " </EndEntry>\n", " <EndEntry>\n", " <EndType>Voltage </EndType>\n", ] self.assertEqual(diff, diff_expected) for line in difflib.unified_diff(original, parsed): self.assertIsNotNone(line) _, namefile = os.path.split(csv_file) namefile = namefile.split("_")[0] + "_names_" namefile = (namefile + datetime.datetime.now().strftime("%Y%m%d_%H%M") + ".csv") names_test = open(os.path.join(scratch_dir, "names", namefile)).readlines() self.assertEqual( names_test, [ "PredictionDiagnostics_000000_\n", "PredictionDiagnostics_000196_\n" ], )