def test_body(self): url_1 = 'http://1.example.com' status_code_1 = 200 reason_1 = 'OK' headers_1 = {'Content-Type': 'text/html'} body_1 = '<html><body><h1>Hello World</h1></body></html>' response_html = RequestsResponseMock(url_1, status_code_1, reason_1, headers_1, body_1) url_2 = 'http://2.example.com' status_code_2 = 404 reason_2 = 'Custom Not Found' headers_2 = {'Content-Type': 'application/json'} body_2 = '{"some": "json"}' response_json = RequestsResponseMock(url_2, status_code_2, reason_2, headers_2, body_2) response_base = ResponseBase(None) response_base._responses = [response_html, response_json, None] response_base._aggregate_response_bodies() response = response_base.response.json self.assertEqual( 'application/json', response_base.response.content_type, ) self.assertEqual(3, len(response)) self.assertEqual(url_1, response[0]['url']) self.assertEqual('{0} {1}'.format(status_code_1, reason_1), response[0]['status']) self.assertEqual(headers_1, response[0]['headers']) self.assertEqual(body_1, response[0]['body']) self.assertEqual(url_2, response[1]['url']) self.assertEqual('{0} {1}'.format(status_code_2, reason_2), response[1]['status']) self.assertEqual(headers_2, response[1]['headers']) self.assertEqual(body_2, response[1]['body']) self.assertIsNone(response[2])
def test__fix_date(self): response = ResponseBase(None) response._fix_date = Mock() response._request = Request.blank('http://www.example.com') response._response = Response() response._fix_headers() response._fix_date.assert_called_with()
def test__fix_content_encoding(self): response = ResponseBase(None) response._fix_content_encoding = Mock() response._request = Request.blank('http://www.example.com') response._response = Response() response._fix_headers() response._fix_content_encoding.assert_called_with()
def test__fix_date(self): utc_now = datetime.utcnow() response = ResponseBase(None) response._response = Response() response._response.date = utc_now mock_datetime = datetime(2012, 7, 31) datetime_patcher = patch.object(response_base, 'datetime') mocked_datetime = datetime_patcher.start() mocked_datetime.utcnow.return_value = mock_datetime self.addCleanup(datetime_patcher.stop) response._fix_date() # Python cannot compare offset-naive (datetime.utcnow()) and # offset-aware (webob.Response.date) datetimes directly, so make a # naive comparison here. self.assertEqual(mock_datetime.year, response._response.date.year) self.assertEqual(mock_datetime.month, response._response.date.month) self.assertEqual(mock_datetime.day, response._response.date.day)
def test_request_gzip_empty_response_gzip_none(self): response = ResponseBase(None) response._request = Mock() response._request.accept_encoding = '' response._response = Response() response._response.content_encoding = None response._response.body = self.response_data response._fix_content_encoding() self.assertEquals(self.response_data, response._response.body)
def test_request_gzip_response_gzip(self): response = ResponseBase(None) response._request = Mock() response._request.accept_encoding = 'gzip' response._response = Response() response._response.content_encoding = 'gzip' response._response.body = self.response_data_gzipped response._fix_content_encoding() self.assertEquals(self.response_data_gzipped, response._response.body)