Example #1
0
    def test_find(self):
        mock_request_1 = self._create_mock_request(
            'http://www.example.com/test/path/?foo=bar')
        mock_request_2 = self._create_mock_request(
            'http://www.stackoverflow.com/other/path/?x=y')
        mock_response = self._create_mock_resonse()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request_1)
        storage.save_response(request_id, mock_response)
        storage.save_request(mock_request_2)

        self.assertEqual(storage.find('/test/path/')['id'], request_id)
        self.assertEqual(storage.find('/test/path/?foo=bar')['id'], request_id)
        self.assertEqual(
            storage.find('http://www.example.com/test/path/?foo=bar')['id'],
            request_id)
        self.assertEqual(
            storage.find('http://www.example.com/test/path/')['id'],
            request_id)

        self.assertIsNone(storage.find('/different/path'))
        self.assertIsNone(storage.find('/test/path/?x=y'))
        self.assertIsNone(
            storage.find('http://www.example.com/different/path/?foo=bar'))
        self.assertIsNone(
            storage.find('http://www.different.com/test/path/?foo=bar'))
        self.assertIsNone(
            storage.find('http://www.example.com/test/path/?x=y'))
Example #2
0
    def test_load_response(self):
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request)
        mock_response = self._create_mock_resonse()
        storage.save_response(request_id, mock_response)

        requests = storage.load_requests()

        self.assertIsNotNone(requests[0]['response'])
    def test_load_response(self):
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        response = self._create_response()
        storage.save_response(request.id, response)

        requests = storage.load_requests()

        self.assertIsNotNone(requests[0].response)
Example #4
0
    def test_load_response_body(self):
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request, request_body=b'test request body')
        mock_response = self._create_mock_resonse()
        storage.save_response(request_id, mock_response, response_body=b'test response body')

        response_body = storage.load_response_body(request_id)

        self.assertEqual(response_body, b'test response body')
    def test_load_response_body(self):
        body = b'test response body'
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        mock_response = self._create_response(body=body)
        storage.save_response(request.id, mock_response)

        response_body = storage.load_response_body(request.id)

        self.assertEqual(body, response_body)
Example #6
0
    def test_save_response_no_request(self):
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request)
        mock_response = self._create_mock_resonse()
        storage.clear_requests()

        storage.save_response(request_id, mock_response)

        response_file_path = self._get_stored_path(request_id, 'response')

        self.assertFalse(response_file_path)
    def test_load_response_encoded_body_error(self):
        body = b'test response body'
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        response = self._create_response(body=body)
        response.headers['Content-Encoding'] = 'gzip'
        storage.save_response(request.id, response)

        response_body = storage.load_requests()[0].response.body

        self.assertEqual(body, response_body)
    def test_find_similar_urls(self):
        request_1 = self._create_request('https://192.168.1.1/redfish/v1')
        request_2 = self._create_request('https://192.168.1.1/redfish')
        mock_response = self._create_response()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request_1)
        storage.save_response(request_1.id, mock_response)
        storage.save_request(request_2)
        storage.save_response(request_2.id, mock_response)

        self.assertEqual(request_1.id, storage.find('.*v1').id)
        self.assertEqual(request_2.id,
                         storage.find('https://192.168.1.1/redfish$').id)
Example #9
0
    def test_load_response_body_encoded(self):
        io = BytesIO()
        with gzip.GzipFile(fileobj=io, mode='wb') as f:
            f.write(b'test response body')
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request, request_body=b'test request body')
        mock_response = self._create_mock_resonse()
        mock_response.headers['Content-Encoding'] = 'gzip'
        storage.save_response(request_id, mock_response, response_body=io.getvalue())

        response_body = storage.load_response_body(request_id)

        self.assertEqual(response_body, b'test response body')
    def test_load_response_encoded_body(self):
        body = b'test response body'
        io = BytesIO()
        with gzip.GzipFile(fileobj=io, mode='wb') as f:
            f.write(body)
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        response = self._create_response(body=io.getvalue())
        response.headers['Content-Encoding'] = 'gzip'
        storage.save_response(request.id, response)

        response_body = storage.load_requests()[0].response.body

        self.assertEqual(body, response_body)
    def test_save_response_with_body(self):
        body = b'some response body'
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        response = self._create_response(body=body)

        storage.save_response(request.id, response)

        response_file_path = self._get_stored_path(request.id, 'response')

        with open(response_file_path[0], 'rb') as loaded:
            loaded_response = pickle.load(loaded)

        self.assertEqual(b'some response body', loaded_response.body)
Example #12
0
    def test_save_response_with_body(self):
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request)
        mock_response = self._create_mock_resonse()
        response_body = b'some response body'

        storage.save_response(request_id, mock_response, response_body=response_body)

        response_body_path = self._get_stored_path(request_id, 'responsebody')

        with open(response_body_path[0], 'rb') as loaded:
            loaded_body = pickle.load(loaded)

        self.assertEqual(loaded_body, b'some response body')
Example #13
0
    def test_save_response(self):
        mock_request = self._create_mock_request()
        storage = RequestStorage(base_dir=self.base_dir)
        request_id = storage.save_request(mock_request)
        mock_response = self._create_mock_resonse()

        storage.save_response(request_id, mock_response)

        response_file_path = self._get_stored_path(request_id, 'response')

        with open(response_file_path[0], 'rb') as loaded:
            loaded_response = pickle.load(loaded)

        self.assertEqual(loaded_response['status_code'], 200)
        self.assertEqual(loaded_response['reason'], 'OK')
        self.assertEqual(loaded_response['headers'], {
            'Content-Type': 'application/json',
            'Content-Length': '500'
        })
    def test_save_response(self):
        request = self._create_request()
        storage = RequestStorage(base_dir=self.base_dir)
        storage.save_request(request)
        response = self._create_response()

        storage.save_response(request.id, response)

        response_file_path = self._get_stored_path(request.id, 'response')

        with open(response_file_path[0], 'rb') as loaded:
            loaded_response = pickle.load(loaded)

        self.assertEqual(200, loaded_response.status_code)
        self.assertEqual('OK', loaded_response.reason)
        self.assertEqual(
            {
                'Content-Type': 'application/json',
                'Content-Length': '500'
            }, dict(loaded_response.headers))