Exemplo n.º 1
0
 def test_get_name_suffix_pruning(self):
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     assert delta._get_name('foo.csv', 'insert') == 'foo.csv.insert'
     assert delta._get_name('foo.csv.sorted.uniq',
                            'insert') == 'foo.csv.insert'
     assert delta._get_name('foo.csv.sorted', 'insert') == 'foo.csv.insert'
     assert delta._get_name('foo.csv.uniq', 'insert') == 'foo.csv.insert'
Exemplo n.º 2
0
    def test_data_match_empty_ignore_fields(self):
        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [1]
        ignore_fields = []
        compare_fields = []
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 3]
        assert delta._data_match(ignore_fields, compare_fields) is True

        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [1]
        ignore_fields = []
        compare_fields = []
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 4]
        assert delta._data_match(ignore_fields, compare_fields) is False
Exemplo n.º 3
0
    def test_key_match_equal(self):
        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0]
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 3]
        assert delta._key_match() == 'equal'

        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0, 1]
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 3]
        assert delta._key_match() == 'equal'

        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0]
        delta.new_rec = [1]
        delta.old_rec = [1]
        assert delta._key_match() == 'equal'
Exemplo n.º 4
0
 def test_1key_empty_file_(self):
     with open(self.old_fqfn, 'w') as f:
         pass
     with open(self.new_fqfn, 'w') as f:
         pass
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     delta.set_fields('join', 1)
     delta.compare_files(self.old_fqfn, self.new_fqfn)
     assert os.path.getsize(self.new_fqfn + '.delete') == 0
     assert os.path.getsize(self.new_fqfn + '.insert') == 0
     assert os.path.getsize(self.new_fqfn + '.chgnew') == 0
     assert os.path.getsize(self.new_fqfn + '.chgold') == 0
     assert os.path.getsize(self.new_fqfn + '.same') == 0
Exemplo n.º 5
0
 def test_1key_newfile_out_of_order_(self):
     with open(self.old_fqfn, 'w') as f:
         f.write('1, bbb, b23\n')
         f.write('2, bbb, a23\n')
         f.write('3, aaa, b23\n')
         f.write('4, aaa, a23\n')
     with open(self.new_fqfn, 'w') as f:
         f.write('1, bbb, b23\n')
         f.write('4, bbb, a23\n')
         f.write('3, aaa, b23\n')
         f.write('2, aaa, a23\n')
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     delta.set_fields('join', 1)
     with pytest.raises(SystemExit):
         delta.compare_files(self.old_fqfn, self.new_fqfn)
Exemplo n.º 6
0
    def test_data_match_with_ignore_fields(self):
        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0]
        ignore_fields = [1]
        compare_fields = []
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 3]
        assert delta._data_match(ignore_fields, compare_fields) is True

        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0]
        ignore_fields = [1]
        compare_fields = []
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 2, 4]
        assert delta._data_match(ignore_fields, compare_fields) is False

        delta = mod.FileDelta(self.temp_dir, self.dialect)
        delta.join_fields = [0]
        ignore_fields = [1]
        compare_fields = [1]
        delta.new_rec = [1, 2, 3]
        delta.old_rec = [1, 4, 3]  # change should be ignored
        assert delta._data_match(ignore_fields, compare_fields) is True
Exemplo n.º 7
0
    def test_set_fields(self):
        delta = mod.FileDelta(self.temp_dir, self.dialect)

        delta.set_fields('join', 1)
        assert delta.join_fields == [1]

        delta.set_fields('join', 2)
        assert delta.join_fields == [1, 2]

        delta.set_fields('join', 3, 4, 5)
        assert delta.join_fields == [1, 2, 3, 4, 5]

        delta.set_fields('join', '6')
        assert delta.join_fields == [1, 2, 3, 4, 5, 6]

        delta.set_fields('join', '7,8')
        assert delta.join_fields == [1, 2, 3, 4, 5, 6, 7, 8]
Exemplo n.º 8
0
 def test_1key_empty_new_file_(self):
     with open(self.old_fqfn, 'w') as f:
         f.write('1, bbb, b23\n')
         f.write('2, bbb, a23\n')
         f.write('3, aaa, b23\n')
         f.write('4, aaa, a23\n')
     with open(self.new_fqfn, 'w') as f:
         pass
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     delta.set_fields('join', 0)
     delta.compare_files(self.old_fqfn, self.new_fqfn)
     assert os.path.getsize(self.new_fqfn + '.delete') > 0
     assert os.path.getsize(self.new_fqfn + '.insert') == 0
     assert os.path.getsize(self.new_fqfn + '.chgnew') == 0
     assert os.path.getsize(self.new_fqfn + '.chgold') == 0
     assert os.path.getsize(self.new_fqfn + '.same') == 0
     delete_rec_cnt = get_file_rec_cnt(self.new_fqfn + '.delete')
     assert delete_rec_cnt == 4
Exemplo n.º 9
0
 def test_get_name_relative_directory_handling(self):
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     assert delta._get_name('../blah/foo.csv', 'insert') == 'foo.csv.insert'
Exemplo n.º 10
0
 def test_key_match_lesser(self):
     delta = mod.FileDelta(self.temp_dir, self.dialect)
     delta.join_fields = [1]
     delta.new_rec = [2, 3, 4]
     delta.old_rec = [1, 2, 3]
     assert delta._key_match() == 'new-greater'