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])
Example #2
0
    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()
Example #3
0
    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_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])
Example #5
0
    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)
Example #6
0
    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)