def test_should_get_rapid_pro_contact(self): first_name = "Jack" last_name = "Bob" phone = '+8618192235667' outcomes = ["YI105 - PCR 1 KEEP CHILDREN AND MOTHERS"] districts = ["Kampala"] ips = ["KAMPALA DHO, WAKISO DHO"] types = ["END_USER", "IMPLEMENTING_PARTNER"] params = {'urn': 'tel:%s' % phone} contact = self.generate_eums_contact(districts, first_name, ips, last_name, outcomes, phone, types) requests.get = MagicMock(return_value=MagicMock(status_code=200, json=MagicMock( return_value=self.generate_add_or_update_rapid_pro_contact_response(contact)))) response = ContactService.get_rapid_pro_contact(phone) requests.get.assert_called_once_with(settings.RAPIDPRO_URLS.get('CONTACTS'), params=params, headers=HEADER, verify=settings.RAPIDPRO_SSL_VERIFY) self.assertEqual(response.status_code, HTTP_200_OK) self.assertEqual(len(response.json().get('groups')), 1) self.assertEqual(response.json().get('groups')[0], 'EUMS') fields = response.json().get("fields") self.assertEqual(fields.get('firstname'), first_name) self.assertEqual(fields.get('lastname'), last_name) self.assertEqual(fields.get('outcomes'), ','.join(outcomes)) self.assertEqual(fields.get('districts'), ','.join(districts)) self.assertEqual(fields.get('ips'), ','.join(ips)) self.assertEqual(fields.get('types'), ','.join(["End-user", "IP"]))
def test_should_get_rapid_pro_contact(self): first_name = "Jack" last_name = "Bob" phone = '+8618192235667' outcomes = ["YI105 - PCR 1 KEEP CHILDREN AND MOTHERS"] districts = ["Kampala"] ips = ["KAMPALA DHO, WAKISO DHO"] types = ["END_USER", "IMPLEMENTING_PARTNER"] url_add_rapid_pro_contact = '%s?%s' % (settings.RAPIDPRO_URLS.get('CONTACTS'), urlencode({ 'urns': 'tel:%s' % phone })) contact = self.generate_eums_contact(districts, first_name, ips, last_name, outcomes, phone, types) requests.get = MagicMock(return_value=MagicMock(status_code=200, json=MagicMock( return_value=self.generate_add_or_update_rapid_pro_contact_response(contact)))) response = ContactService.get_rapid_pro_contact(phone) requests.get.assert_called_once_with(url_add_rapid_pro_contact, headers=HEADER, verify=settings.RAPIDPRO_SSL_VERIFY) self.assertEqual(response.status_code, HTTP_200_OK) self.assertEqual(len(response.json().get('groups')), 1) self.assertEqual(response.json().get('groups')[0], 'EUMS') fields = response.json().get("fields") self.assertEqual(fields.get('firstname'), first_name) self.assertEqual(fields.get('lastname'), last_name) self.assertEqual(fields.get('outcomes'), ','.join(outcomes)) self.assertEqual(fields.get('districts'), ','.join(districts)) self.assertEqual(fields.get('ips'), ','.join(ips)) self.assertEqual(fields.get('types'), ','.join(["End-user", "IP"]))
def test_should_not_get_contact_when_rapid_pro_off(self): phone = '+8618192235667' requests.get = MagicMock() ContactService.get_rapid_pro_contact(phone) self.assertFalse(requests.get.called)