Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
kaapstorm committed Feb 3, 2025
1 parent 6193a3c commit dfd6c5b
Showing 1 changed file with 49 additions and 6 deletions.
55 changes: 49 additions & 6 deletions corehq/motech/repeaters/tests/test_repeater.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,15 +587,15 @@ 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",
create=True,
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']
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand All @@ -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):
Expand Down

0 comments on commit dfd6c5b

Please sign in to comment.