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)
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', ]))
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)
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))
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)
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)
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)