def test_client_wants_json_back(self): """Clients requesting JSON should definitely not get XML back.""" body = '{"container": {"attribute": "value"}}' req = make_request(body=body, method='POST', accept='application/json') middleware.XmlBodyMiddleware(None).process_request(req) resp = make_response(body=body) middleware.XmlBodyMiddleware(None).process_response(req, resp) self.assertNotIn('application/xml', resp.content_type)
def test_client_fails_to_specify_accept(self): """If client does not specify an Accept header, default to JSON.""" body = '{"container": {"attribute": "value"}}' req = make_request(body=body, method='POST') middleware.XmlBodyMiddleware(None).process_request(req) resp = make_response(body=body) middleware.XmlBodyMiddleware(None).process_response(req, resp) self.assertNotIn('application/xml', resp.content_type)
def test_client_wants_xml_back(self): """Clients requesting XML should get what they ask for.""" body = '{"container": {"attribute": "value"}}' req = make_request(body=body, method='POST', accept='application/xml') middleware.XmlBodyMiddleware(None).process_request(req) resp = make_response(body=body) middleware.XmlBodyMiddleware(None).process_response(req, resp) self.assertEqual(resp.content_type, 'application/xml')
def test_json_unnaffected(self): """JSON-only requests should be unnaffected by the XML middleware.""" content_type = 'application/json' body = '{"container": {"attribute": "value"}}' req = make_request(body=body, content_type=content_type, method='POST') middleware.XmlBodyMiddleware(None).process_request(req) self.assertEqual(req.body, body) self.assertEqual(req.content_type, content_type)
def test_xml_replaced_by_json(self): """XML requests should be replaced by JSON requests.""" req = make_request( body='<container><element attribute="value" /></container>', content_type='application/xml', method='POST') middleware.XmlBodyMiddleware(None).process_request(req) self.assertTrue(req.content_type, 'application/json') self.assertTrue(json.loads(req.body))