class TestRepeaterFormat(BaseRepeaterTest): domain = 'test-fmt' @classmethod def setUpClass(cls): super(TestRepeaterFormat, cls).setUpClass() cls.payload = 'some random case' class NewCaseGenerator(BasePayloadGenerator): format_name = 'new_format' format_label = 'XML' deprecated_format_names = ('new_format_alias', ) def get_payload(self, repeat_record, payload_doc): return cls.payload RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator) cls.new_generator = NewCaseGenerator def setUp(self): super().setUp() self.post_xml(self.xform_xml, self.domain) self.connx = ConnectionSettings.objects.create( domain=self.domain, url='case-repeater-url', ) self.repeater = CaseRepeater( domain=self.domain, connection_settings_id=self.connx.id, format='new_format', ) self.repeater.save() def tearDown(self): self.repeater.delete() self.connx.delete() FormProcessorTestUtils.delete_all_cases_forms_ledgers(self.domain) delete_all_repeat_records() super().tearDown() def test_new_format_same_name(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'case_xml' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator) def test_new_format_second_default(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'rubbish' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator, is_default=True) @run_with_all_backends def test_new_format_payload(self): repeat_record = self.repeater.register( CaseAccessors(self.domain).get_case(CASE_ID)) with patch('corehq.motech.repeaters.models.simple_post') as mock_post, \ patch.object(ConnectionSettings, 'get_auth_manager') as mock_manager: mock_post.return_value.status_code = 200 mock_manager.return_value = 'MockAuthManager' repeat_record.fire() headers = self.repeater.get_headers(repeat_record) mock_post.assert_called_with( self.domain, self.connx.url, self.payload, auth_manager='MockAuthManager', headers=headers, notify_addresses=[], payload_id='ABC123CASEID', verify=self.repeater.verify, ) def test_get_format_by_deprecated_name(self): self.assertIsInstance( CaseRepeater( domain=self.domain, url='case-repeater-url', format='new_format_alias', ).generator, self.new_generator)
class TestRepeaterFormat(BaseRepeaterTest): @classmethod def setUpClass(cls): super(TestRepeaterFormat, cls).setUpClass() cls.payload = 'some random case' class NewCaseGenerator(BasePayloadGenerator): format_name = 'new_format' format_label = 'XML' deprecated_format_names = ('new_format_alias', ) def get_payload(self, repeat_record, payload_doc): return cls.payload RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator) cls.new_generator = NewCaseGenerator def setUp(self): super(TestRepeaterFormat, self).setUp() self.domain = "test-domain" create_domain(self.domain) self.post_xml(self.xform_xml, self.domain) self.repeater = CaseRepeater( domain=self.domain, url='case-repeater-url', format='new_format', ) self.repeater.save() def tearDown(self): self.repeater.delete() FormProcessorTestUtils.delete_all_cases_forms_ledgers(self.domain) delete_all_repeat_records() super(TestRepeaterFormat, self).tearDown() def test_new_format_same_name(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'case_xml' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator) def test_new_format_second_default(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'rubbish' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format( NewCaseGenerator, is_default=True) @run_with_all_backends def test_new_format_payload(self): repeat_record = self.repeater.register( CaseAccessors(self.domain).get_case(CASE_ID)) with patch('corehq.motech.repeaters.models.simple_post') as mock_post: mock_post.return_value.status_code = 200 repeat_record.fire() headers = self.repeater.get_headers(repeat_record) mock_post.assert_called_with( self.payload, self.repeater.url, headers=headers, timeout=POST_TIMEOUT, auth=self.repeater.get_auth(), verify=self.repeater.verify, ) def test_get_format_by_deprecated_name(self): self.assertIsInstance( CaseRepeater( domain=self.domain, url='case-repeater-url', format='new_format_alias', ).generator, self.new_generator)
class TestRepeaterFormat(BaseRepeaterTest): @classmethod def setUpClass(cls): super(TestRepeaterFormat, cls).setUpClass() cls.payload = 'some random case' class NewCaseGenerator(BasePayloadGenerator): format_name = 'new_format' format_label = 'XML' deprecated_format_names = ('new_format_alias',) def get_payload(self, repeat_record, payload_doc): return cls.payload RegisterGenerator.get_collection(CaseRepeater).add_new_format(NewCaseGenerator) cls.new_generator = NewCaseGenerator def setUp(self): super(TestRepeaterFormat, self).setUp() self.domain = "test-domain" create_domain(self.domain) self.post_xml(self.xform_xml, self.domain) self.repeater = CaseRepeater( domain=self.domain, url='case-repeater-url', format='new_format', ) self.repeater.save() def tearDown(self): self.repeater.delete() FormProcessorTestUtils.delete_all_cases_forms_ledgers(self.domain) delete_all_repeat_records() super(TestRepeaterFormat, self).tearDown() def test_new_format_same_name(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'case_xml' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format(NewCaseGenerator) def test_new_format_second_default(self): class NewCaseGenerator(BasePayloadGenerator): format_name = 'rubbish' format_label = 'XML' def get_payload(self, repeat_record, payload_doc): return self.payload with self.assertRaises(DuplicateFormatException): RegisterGenerator.get_collection(CaseRepeater).add_new_format(NewCaseGenerator, is_default=True) @run_with_all_backends def test_new_format_payload(self): repeat_record = self.repeater.register(CaseAccessors(self.domain).get_case(CASE_ID)) with patch('corehq.motech.repeaters.models.simple_post') as mock_post: mock_post.return_value.status_code = 200 repeat_record.fire() headers = self.repeater.get_headers(repeat_record) mock_post.assert_called_with( self.payload, self.repeater.url, headers=headers, timeout=POST_TIMEOUT, auth=self.repeater.get_auth(), verify=self.repeater.verify, ) def test_get_format_by_deprecated_name(self): self.assertIsInstance(CaseRepeater( domain=self.domain, url='case-repeater-url', format='new_format_alias', ).generator, self.new_generator)