Skip to content

Commit 926a17b

Browse files
committed
Update requests contrib tests
1 parent d79ad01 commit 926a17b

File tree

5 files changed

+35
-9
lines changed

5 files changed

+35
-9
lines changed

requirements_dev.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ falcon==2.0.0
66
flask
77
django==2.2.10; python_version>="3.0"
88
requests==2.22.0
9+
responses==0.10.12
910
webob

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ tests_require =
4040
pytest-cov
4141
falcon
4242
flask
43+
responses
4344
webob
4445

4546
[options.packages.find]

tests/integration/contrib/requests/conftest.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import pytest
22
from requests.models import Request, Response
33
from requests.structures import CaseInsensitiveDict
4+
from six import BytesIO, b
45
from six.moves.urllib.parse import urljoin, parse_qs
6+
from urllib3.response import HTTPResponse
57

68

79
@pytest.fixture
@@ -24,11 +26,13 @@ def create_request(method, path, subdomain=None, query_string=''):
2426
def response_factory():
2527
def create_response(
2628
data, status_code=200, content_type='application/json'):
29+
fp = BytesIO(b(data))
30+
raw = HTTPResponse(fp, preload_content=False)
2731
resp = Response()
2832
resp.headers = CaseInsensitiveDict({
2933
'Content-Type': content_type,
3034
})
3135
resp.status_code = status_code
32-
resp.raw = data
36+
resp.raw = raw
3337
return resp
3438
return create_response
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from openapi_core.contrib.requests import RequestsOpenAPIResponse
2+
3+
4+
class TestRequestsOpenAPIResponse(object):
5+
6+
def test_invalid_server(self, response_factory):
7+
response = response_factory('Not Found', status_code=404)
8+
9+
openapi_response = RequestsOpenAPIResponse(response)
10+
11+
assert openapi_response.data == response.content
12+
assert openapi_response.status_code == response.status_code
13+
mimetype = response.headers.get('Content-Type')
14+
assert openapi_response.mimetype == mimetype

tests/integration/contrib/requests/test_requests_validation.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import pytest
2+
import requests
3+
import responses
24

35
from openapi_core.contrib.requests import (
46
RequestsOpenAPIRequest, RequestsOpenAPIResponse,
@@ -15,21 +17,25 @@ def spec(self, factory):
1517
specfile = 'contrib/requests/data/v3.0/requests_factory.yaml'
1618
return create_spec(factory.spec_from_file(specfile))
1719

18-
def test_response_validator_path_pattern(self,
19-
spec,
20-
request_factory,
21-
response_factory):
20+
@responses.activate
21+
def test_response_validator_path_pattern(self, spec):
22+
responses.add(
23+
responses.GET, 'http://localhost/browse/12/',
24+
json={"data": "data"}, status=200)
2225
validator = ResponseValidator(spec)
23-
request = request_factory('GET', '/browse/12/', subdomain='kb')
26+
request = requests.Request('GET', 'http://localhost/browse/12/')
27+
request_prepared = request.prepare()
28+
session = requests.Session()
29+
response = session.send(request_prepared)
2430
openapi_request = RequestsOpenAPIRequest(request)
25-
response = response_factory('{"data": "data"}', status_code=200)
2631
openapi_response = RequestsOpenAPIResponse(response)
2732
result = validator.validate(openapi_request, openapi_response)
2833
assert not result.errors
2934

30-
def test_request_validator_path_pattern(self, spec, request_factory):
35+
@responses.activate
36+
def test_request_validator_path_pattern(self, spec):
3137
validator = RequestValidator(spec)
32-
request = request_factory('GET', '/browse/12/', subdomain='kb')
38+
request = requests.Request('GET', 'http://localhost/browse/12/')
3339
openapi_request = RequestsOpenAPIRequest(request)
3440
result = validator.validate(openapi_request)
3541
assert not result.errors

0 commit comments

Comments
 (0)