示例#1
0
 def test_find_multiple_duplicates(self):
     assert_that(
         duplicates.find_all_duplicates([
             get_data_entry_one(),
             get_data_entry_one_duplicate('124'),
             get_data_entry_one_duplicate('125')
         ]), equal_to((['124', '125'], {})))
示例#2
0
def find_duplicates(data_entries: Iterable[_DataEntry]):
    try:
        safe_to_delete_duplicate_ids, duplicates_with_different_values = \
            duplicates.find_all_duplicates(data_entries)
        if safe_to_delete_duplicate_ids:
            yield safe_to_delete_duplicate_ids
        if duplicates_with_different_values:
            yield _TaggedOutput('duplicates_with_different_values',
                                duplicates_with_different_values)
    except Exception as e:
        logging.error(f'Error when trying to produce duplicates: {e}')
示例#3
0
    def test_find_duplicates_with_different_values(self):
        diff_one_a = get_data_entry_one_duplicate('666')
        diff_one_a.value = 1245.67
        diff_one_b = get_data_entry_one_duplicate('777')
        diff_one_b.value = 1245.67

        diff_two = copy.deepcopy(get_data_entry_two())
        diff_two.id = 'abcdefg'
        diff_two.value = 0.9999
        diff_two.updated_at.seconds += 1

        assert_that(
            duplicates.find_all_duplicates([
                get_data_entry_one(),
                get_data_entry_one_duplicate('124'),
                get_data_entry_one_duplicate('125'), diff_one_a, diff_one_b,
                get_data_entry_two(), diff_two
            ]),
            equal_to((['124', '125'], {
                '123': [diff_one_a, diff_one_b],
                '234': [diff_two],
            })))
示例#4
0
 def test_find_no_duplicates_when_there_is_none(self):
     assert_that(
         duplicates.find_all_duplicates(
             [get_data_entry_one(),
              get_data_entry_two()]), equal_to(([], {})))
示例#5
0
 def test_find_no_duplicates_for_list_of_one_entry(self):
     assert_that(duplicates.find_all_duplicates([get_data_entry_one()]),
                 equal_to(([], {})))
示例#6
0
 def test_find_no_duplicates_for_empty_list(self):
     assert_that(duplicates.find_all_duplicates([]), equal_to(([], {})))