diff --git a/corehq/motech/repeaters/tests/test_repeater.py b/corehq/motech/repeaters/tests/test_repeater.py index 76b738369aed..30604731751b 100644 --- a/corehq/motech/repeaters/tests/test_repeater.py +++ b/corehq/motech/repeaters/tests/test_repeater.py @@ -587,7 +587,7 @@ def test_excluded_case_types_are_not_forwarded(self): case_type="planet", ).as_text() CaseFactory(self.domain).post_case_blocks([white_listed_case]) - self.assertEqual(1, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 1 non_white_listed_case = CaseBlock( case_id="b_case_id", @@ -595,7 +595,7 @@ def test_excluded_case_types_are_not_forwarded(self): case_type="cat", ).as_text() CaseFactory(self.domain).post_case_blocks([non_white_listed_case]) - self.assertEqual(1, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 1 def test_black_listed_user_cases_do_not_forward(self): self.repeater.black_listed_users = ['black_listed_user'] @@ -618,7 +618,7 @@ def test_black_listed_user_cases_do_not_forward(self): ) self.post_xml(xform_xml, self.domain) - self.assertEqual(0, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 0 # case-creations by normal users should be forwarded normal_user_case = CaseBlock( @@ -636,7 +636,7 @@ def test_black_listed_user_cases_do_not_forward(self): ) self.post_xml(xform_xml, self.domain) - self.assertEqual(1, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 1 # case-updates by black-listed users shouldn't be forwarded black_listed_user_case = CaseBlock( @@ -652,7 +652,7 @@ def test_black_listed_user_cases_do_not_forward(self): black_listed_user_case, ) self.post_xml(xform_xml, self.domain) - self.assertEqual(1, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 1 # case-updates by normal users should be forwarded normal_user_case = CaseBlock( @@ -668,7 +668,50 @@ def test_black_listed_user_cases_do_not_forward(self): normal_user_case, ) self.post_xml(xform_xml, self.domain) - self.assertEqual(2, len(self.repeat_records(self.domain).all())) + assert len(self.repeat_records(self.domain).all()) == 2 + + def test_merge_records(self): + factory = CaseFactory(self.domain) + factory.post_case_blocks([ + CaseBlock( + case_id='(134340) Pluto', + create=True, + case_name='Pluto', + case_type='planet', + date_opened='1930-02-18', + ).as_text(), + ]) + factory.post_case_blocks([ + CaseBlock( + case_id='(134340) Pluto I', + create=True, + case_name='Charon', + case_type='moon', + date_opened='1978-06-22', + ).as_text(), + ]) + factory.post_case_blocks([ + CaseBlock( + case_id='(134340) Pluto', + update={ + 'case_type': 'dwarf_planet' + }, + date_modified='2006-08-24', + ).as_text(), + ]) + repeat_records = self.repeater.repeat_records_ready.all() + assert [r.payload_id for r in repeat_records] == [ + '(134340) Pluto', + '(134340) Pluto I', + '(134340) Pluto', + ] + self.repeater.merge_records() + + repeat_records = self.repeater.repeat_records_ready.all() + assert [r.payload_id for r in repeat_records] == [ + '(134340) Pluto', + '(134340) Pluto I', + ] class RepeaterFailureTest(BaseRepeaterTest):