示例#1
0
    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'])
示例#4
0
    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)
示例#6
0
    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"
                ],
            )