Exemple #1
0
    def test_opening_file_raises_io_error___oasis_exception_is_raised(self):
        def raising_function(*args, **kwargs):
            raise IOError()

        with patch('io.open',
                   Mock(side_effect=raising_function)), self.assertRaises(
                       OasisException):
            unified_diff('first', 'second')
    def check(self, name, reference_filename=None):
        output_filename = os.path.join(self.KPARSE_OUTPUT_FOLDER,
                                       "{}.sh".format(name))
        if not reference_filename:
            reference_filename = os.path.join(self.KPARSE_REFERENCE_FOLDER,
                                              "{}.sh".format(name))

        if self.fifo_tmp_dir:
            # Create temp Ref file
            ref_template = reference_filename
            ref_tmp_file = NamedTemporaryFile("w+", delete=False)
            with io.open(output_filename, 'r') as f:
                for line in f:
                    if '/tmp/' in line:
                        tmp_fifo_dir = line.split('/')[-2]
                        break

            # Replace placeholder '%FIFO_DIR%' with '<RandomDirName>'
            with io.open(ref_template, 'r') as f:
                ktools_script = f.read()
            ktools_script = ktools_script.replace('%FIFO_DIR%', tmp_fifo_dir)
            ref_tmp_file.write(ktools_script)
            ref_tmp_file.close()
            reference_filename = ref_tmp_file.name

        d = diff.unified_diff(reference_filename,
                              output_filename,
                              as_string=True)
        if d:
            self.fail(d)
Exemple #3
0
    def test_two_files_are_different_as_string_is_true___result_is_concatenated_list_of_differences(
            self):
        with NamedTemporaryFile(mode='w') as first, NamedTemporaryFile(
                mode='w') as second:
            first.writelines(
                ['HEADING\n', 'first\n', 'same\n', 'second\n', 'FOOTER\n'])
            first.flush()

            second.writelines(
                ['HEADING\n', 'third\n', 'same\n', 'fourth\n', 'FOOTER\n'])
            second.flush()

            diff = unified_diff(first.name, second.name, as_string=True)

            self.assertEqual(
                diff, ''.join([
                    '--- {}\n'.format(first.name),
                    '+++ {}\n'.format(second.name),
                    '@@ -1,5 +1,5 @@\n',
                    ' HEADING\n',
                    '-first\n',
                    '+third\n',
                    ' same\n',
                    '-second\n',
                    '+fourth\n',
                    ' FOOTER\n',
                ]))
Exemple #4
0
    def test_two_files_are_different_as_string_is_true___result_is_concatenated_list_of_differences(
            self):
        first = NamedTemporaryFile(mode='w', delete=False)
        second = NamedTemporaryFile(mode='w', delete=False)
        try:
            first.writelines(
                ['HEADING\n', 'first\n', 'same\n', 'second\n', 'FOOTER\n'])
            first.close()

            second.writelines(
                ['HEADING\n', 'third\n', 'same\n', 'fourth\n', 'FOOTER\n'])
            second.close()

            diff = unified_diff(first.name, second.name, as_string=True)

            self.assertEqual(
                diff, ''.join([
                    '--- {}\n'.format(first.name),
                    '+++ {}\n'.format(second.name),
                    '@@ -1,5 +1,5 @@\n',
                    ' HEADING\n',
                    '-first\n',
                    '+third\n',
                    ' same\n',
                    '-second\n',
                    '+fourth\n',
                    ' FOOTER\n',
                ]))
        finally:
            os.remove(first.name)
            os.remove(second.name)
Exemple #5
0
    def test_two_files_are_the_same___result_is_empty(self):
        with NamedTemporaryFile(mode='w') as f:
            f.write('content')
            f.flush()

            diff = list(unified_diff(f.name, f.name))

            self.assertEqual(0, len(diff))
Exemple #6
0
    def check(self, name):
        output_filename = os.path.join(KPARSE_OUTPUT_FOLDER,
                                       "{}.sh".format(name))
        reference_filename = os.path.join(KPARSE_REFERENCE_FOLDER,
                                          "{}.sh".format(name))

        d = diff.unified_diff(reference_filename,
                              output_filename,
                              as_string=True)
        if d:
            self.fail(d)
Exemple #7
0
    def test_two_files_are_the_same___result_is_empty(self):
        f = NamedTemporaryFile(mode='w', delete=False)
        try:
            f.write('content')
            f.close()

            diff = list(unified_diff(f.name, f.name))

            self.assertEqual(0, len(diff))
        finally:
            os.remove(f.name)
Exemple #8
0
    def test_source_to_canonical(self, chunk_size):
        with TemporaryDirectory() as d:
            output_file = os.path.join(d, 'canonical.csv')

            translator = Translator(
                os.path.join(input_data_dir, 'source.csv'),
                output_file,
                os.path.join(input_data_dir, 'source_to_canonical.xslt'),
                os.path.join(input_data_dir, 'source_to_canonical.xsd'),
                chunk_size=chunk_size,
                append_row_nums=True
            )
            translator()

            diff = unified_diff(output_file, os.path.join(expected_data_dir, 'canonical.csv'), as_string=True)
            self.assertEqual(0, len(diff), diff)