def send(self, url, parsed_instance): """ Sends the submission to the configured rest service :param url: :param parsed_instance: :return: """ extra_data = self.clean_keys_of_slashes(parsed_instance.instance.json) meta = MetaData.textit(parsed_instance.instance.xform) token, flow_uuid, contacts = meta.data_value.split(METADATA_SEPARATOR) post_data = { "extra": extra_data, "flow_uuid": flow_uuid, "contacts": contacts } headers = { "Content-Type": "application/json", "Authorization": "Token {}".format(token) } http = httplib2.Http() resp, content = http.request(uri=url, method='POST', headers=headers, body=json.dumps(post_data))
def test_textit_service(self, mock_http): service_url = "https://textit.io/api/v1/runs.json" service_name = "textit" self._add_rest_service(service_url, service_name) # add metadata api_token = "asdaasda" flow_uuid = "getvdgdfd" default_contact = "sadlsdfskjdfds" MetaData.textit(self.xform, data_value="{}|{}|{}".format(api_token, flow_uuid, default_contact)) xml_submission = os.path.join(self.this_directory, u'fixtures', u'dhisform_submission1.xml') self.assertFalse(mock_http.called) self._make_submission(xml_submission) self.assertTrue(mock_http.called) self.assertEquals(mock_http.call_count, 1)
def test_textit_service(self, mock_http): service_url = "https://textit.io/api/v1/runs.json" service_name = "textit" self._add_rest_service(service_url, service_name) # add metadata api_token = "asdaasda" flow_uuid = "getvdgdfd" default_contact = "sadlsdfskjdfds" MetaData.textit( self.xform, data_value="{}|{}|{}".format(api_token, flow_uuid, default_contact)) xml_submission = os.path.join(self.this_directory, u'fixtures', u'dhisform_submission1.xml') self.assertFalse(mock_http.called) self._make_submission(xml_submission) self.assertTrue(mock_http.called) self.assertEquals(mock_http.call_count, 1)
def send(self, url, submission_instance): """ Sends the submission to the configured rest service :param url: :param submission_instance: :return: """ extra_data = self.clean_keys_of_slashes(submission_instance.json) data_value = MetaData.textit(submission_instance.xform) if data_value: token, flow, contacts = data_value.split(METADATA_SEPARATOR) post_data = { "extra": extra_data, "flow": flow, "contacts": contacts.split(',') } headers = {"Content-Type": "application/json", "Authorization": "Token {}".format(token)} requests.post(url, headers=headers, data=json.dumps(post_data))
def send(self, url, submission_instance): """ Sends the submission to the configured rest service :param url: :param submission_instance: :return: """ extra_data = self.clean_keys_of_slashes(submission_instance.json) data_value = MetaData.textit(submission_instance.xform) if data_value: token, flow, contacts = data_value.split(METADATA_SEPARATOR) post_data = { "extra": extra_data, "flow": flow, "contacts": contacts.split(',') } headers = {"Content-Type": "application/json", "Authorization": "Token {}".format(token)} requests.post(url, headers=headers, data=json.dumps(post_data))
def send(self, url, parsed_instance): """ Sends the submission to the configured rest service :param url: :param parsed_instance: :return: """ extra_data = self.clean_keys_of_slashes(parsed_instance.instance.json) meta = MetaData.textit(parsed_instance.instance.xform) token, flow_uuid, contacts = meta.data_value.split(METADATA_SEPARATOR) post_data = { "extra": extra_data, "flow_uuid": flow_uuid, "contacts": contacts } headers = {"Content-Type": "application/json", "Authorization": "Token {}".format(token)} http = httplib2.Http() resp, content = http.request(uri=url, method='POST', headers=headers, body=json.dumps(post_data))