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'], {})))
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}')
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], })))
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(([], {})))
def test_find_no_duplicates_for_list_of_one_entry(self): assert_that(duplicates.find_all_duplicates([get_data_entry_one()]), equal_to(([], {})))
def test_find_no_duplicates_for_empty_list(self): assert_that(duplicates.find_all_duplicates([]), equal_to(([], {})))