def test_post_200(self, data): self.mock_mailgun_response() request_data = self.request_template() merge(request_data, data) response = self.request_to_class_view(AnnotationRequestViewSet, 'post', data=request_data) self.assertEqual(response.status_code, 201) self.assertIsNotNone(response)
def test_url_standardized(self, data, expected_response_url): self.mock_mailgun_response() request_data = self.request_template() merge(request_data, data) response = self.request_to_class_view(AnnotationRequestViewSet, 'post', data=request_data) self.assertEqual(response.status_code, 201, response.content.decode()) self.assertIsNotNone(response) self.assertEqual( json.loads(response.content.decode())['data']['attributes']['url'], expected_response_url)
def test_error_logged(self): data = {'data': {'attributes': {'url': 'http://www.xyz.pl'}}} self.mock_mailgun_response(400) request_data = self.request_template() merge(request_data, data) with self.assertLogs('pp.annotation', level='ERROR') as cm: response = self.request_to_class_view(AnnotationRequestViewSet, 'post', data=request_data) self.assertEqual(response.status_code, 201) self.assertIsNotNone(response) self.assertEqual(len(cm.output), 1)
def test_post_optional_string_attributes(self, data): self.mock_mailgun_response() request_data = self.request_template() merge(request_data, data) response = self.request_to_class_view(AnnotationRequestViewSet, 'post', data=request_data) self.assertEqual(response.status_code, 201, response.content.decode()) for send_attr, send_value in data['data']['attributes'].items(): self.assertEqual( send_value, json.loads( response.content.decode())['data']['attributes'].get( send_attr, ''), response.content)