本文整理汇总了Python中werkzeug.test.EnvironBuilder.get_request方法的典型用法代码示例。如果您正苦于以下问题:Python EnvironBuilder.get_request方法的具体用法?Python EnvironBuilder.get_request怎么用?Python EnvironBuilder.get_request使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类werkzeug.test.EnvironBuilder
的用法示例。
在下文中一共展示了EnvironBuilder.get_request方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_not_acceptable
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_not_acceptable(self):
"Test various Accept-* combinations."
class ReadOnlyResource(Resource):
def get(self, request, response, *args, **kwargs):
return "{}"
resource = ReadOnlyResource()
# Non-explicit
self.params["method"] = "GET"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 200)
self.params["headers"] = {"Accept": "application/json,application/xml;q=0.9,*/*;q=0.8"}
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 200)
self.params["headers"] = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 406)
self.params["headers"] = {"Accept": "*/*"}
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 406)
示例2: test_unsupported_media_type
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_unsupported_media_type(self):
"Test various Content-* combinations."
class ReadOnlyResource(Resource):
def post(self, request, response, *args, **kwargs):
response.status = codes.no_content
resource = ReadOnlyResource()
self.params["method"] = "POST"
# Works..
self.params["content_type"] = "application/json; charset=utf-8"
self.params["data"] = '{"message": "hello world"}'
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 204)
# Unsupported Media Type
self.params["content_type"] = "application/xml"
self.params["data"] = "<message>hello world</message>"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 415)
示例3: test_default
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_default(self):
"Tests for the default Resource which is very limited."
resource = Resource()
self.params["method"] = "OPTIONS"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 200)
# Try another non-default method
self.params["method"] = "GET"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 405)
self.assertEqual(response.headers["allow"], "OPTIONS")
class PatchResource(Resource):
allowed_methods = ("PATCH", "OPTIONS")
def patch(self, request, response):
response.status = codes.no_content
resource = PatchResource()
self.params["method"] = "OPTIONS"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.headers["Accept-Patch"], "application/json")
示例4: test_request_entity_too_large
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_request_entity_too_large(self):
"Test request entity too large."
class TinyResource(Resource):
max_request_entity_length = 20
def post(self, request, response, *args, **kwargs):
response.status = codes.no_content
resource = TinyResource()
self.params["method"] = "POST"
self.params["content_type"] = "application/json"
self.params["data"] = '{"message": "hello"}'
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 204)
self.params["data"] = '{"message": "hello world"}'
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 413)
示例5: from_values
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def from_values(cls, *args, **kwargs):
"""Create a new request object based on the values provided. If
environ is given missing values are filled from there. This method is
useful for small scripts when you need to simulate a request from an URL.
Do not use this method for unittesting, there is a full featured client
object (:class:`Client`) that allows to create multipart requests,
support for cookies etc.
This accepts the same options as the
:class:`~werkzeug.test.EnvironBuilder`.
.. versionchanged:: 0.5
This method now accepts the same arguments as
:class:`~werkzeug.test.EnvironBuilder`. Because of this the
`environ` parameter is now called `environ_overrides`.
:return: request object
"""
from werkzeug.test import EnvironBuilder
charset = kwargs.pop('charset', cls.charset)
kwargs['charset'] = charset
builder = EnvironBuilder(*args, **kwargs)
try:
return builder.get_request(cls)
finally:
builder.close()
示例6: from_values
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def from_values(cls, *args, **kwargs):
from werkzeug.test import EnvironBuilder
charset = kwargs.pop('charset', cls.charset)
builder = EnvironBuilder(*args, **kwargs)
try:
return builder.get_request(cls)
finally:
builder.close()
示例7: test_request
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_request (self, * args, ** kw) :
"""Return a request object corresponding to `args` and `kw`. All
arguments supported by `werkzeug.test.EnvironBuilder` plus
`request_class` are allowed.
"""
request_class = kw.pop ("request_class", self.root.Request)
env_builder = EnvironBuilder (* args, ** kw)
return env_builder.get_request (request_class)
示例8: test_response_with_none_without_etag
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_response_with_none_without_etag():
class GETTest(RESTController):
pass
controller = GETTest(App)
env = EnvironBuilder(
headers=[('If-None-Match', '"56"')])
with pytest.raises(TypeError):
controller.response(env.get_request(), None)
示例9: test_response_with_none_and_etag
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_response_with_none_and_etag():
class GETTest(RESTController):
pass
controller = GETTest(App)
env = EnvironBuilder(
headers=[('If-None-Match', '"56"')])
response = controller.response(env.get_request(), None, etag='56')
assert response.status_code == 304
assert response.headers['ETag'] == '"56"'
示例10: test_rate_limit
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_rate_limit(self):
"""Test a global rate limiting implementation.
This test will take 3 seconds to run to mimic request handling over
time.
"""
import time
from datetime import datetime
class RateLimitResource(Resource):
rate_limit_count = 10
rate_limit_seconds = 2
# Keep track of requests globally for the resource.. only for test
# purposes, not thread-safe
request_frame_start = datetime.now()
request_count = 0
def check_too_many_requests(self, request, response, *args, **kwargs):
interval = (datetime.now() - self.request_frame_start).seconds
self.request_count += 1
# Reset frame if the interval is greater than the rate limit seconds,
# i.e on the 3 second in this test
if interval > self.rate_limit_seconds:
self.request_frame_start = datetime.now()
self.request_count = 1
# Throttle
elif self.request_count > self.rate_limit_count and interval <= self.rate_limit_seconds:
return True
return False
resource = RateLimitResource()
self.params["method"] = "OPTIONS"
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
for _ in xrange(0, 10):
response = resource(request)
self.assertEqual(response.status_code, 200)
time.sleep(1)
for _ in xrange(0, 10):
response = resource(request)
self.assertEqual(response.status_code, 429)
time.sleep(2)
for _ in xrange(0, 10):
response = resource(request)
self.assertEqual(response.status_code, 200)
示例11: test_environ_builder_content_type
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_environ_builder_content_type():
builder = EnvironBuilder()
assert builder.content_type is None
builder.method = "POST"
assert builder.content_type == "application/x-www-form-urlencoded"
builder.form["foo"] = "bar"
assert builder.content_type == "application/x-www-form-urlencoded"
builder.files.add_file("blafasel", BytesIO(b"foo"), "test.txt")
assert builder.content_type == "multipart/form-data"
req = builder.get_request()
strict_eq(req.form["foo"], u"bar")
strict_eq(req.files["blafasel"].read(), b"foo")
示例12: test_environ_builder_content_type
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_environ_builder_content_type(self):
builder = EnvironBuilder()
assert builder.content_type is None
builder.method = 'POST'
assert builder.content_type == 'application/x-www-form-urlencoded'
builder.form['foo'] = 'bar'
assert builder.content_type == 'application/x-www-form-urlencoded'
builder.files.add_file('blafasel', StringIO('foo'), 'test.txt')
assert builder.content_type == 'multipart/form-data'
req = builder.get_request()
assert req.form['foo'] == 'bar'
assert req.files['blafasel'].read() == 'foo'
示例13: test_environ_builder_content_type
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_environ_builder_content_type(self):
builder = EnvironBuilder()
self.assert_is_none(builder.content_type)
builder.method = 'POST'
self.assert_equal(builder.content_type, 'application/x-www-form-urlencoded')
builder.form['foo'] = 'bar'
self.assert_equal(builder.content_type, 'application/x-www-form-urlencoded')
builder.files.add_file('blafasel', BytesIO(b'foo'), 'test.txt')
self.assert_equal(builder.content_type, 'multipart/form-data')
req = builder.get_request()
self.assert_strict_equal(req.form['foo'], u'bar')
self.assert_strict_equal(req.files['blafasel'].read(), b'foo')
示例14: test_get_with_matching_etag
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_get_with_matching_etag():
class GETTest(RESTController):
def get(self, request, id):
return {'test': 'testing'}
controller = GETTest(App)
env = EnvironBuilder(
headers=[('If-None-Match', '"56765472680401499c79732468ba4340"')])
response = controller.dispatch(env.get_request(), 'id')
assert response.status_code == 304
assert response.headers['ETag'] == '"56765472680401499c79732468ba4340"'
assert response.headers['Cache-Control'] == 'must-revalidate'
assert response.response == []
示例15: test_service_unavailable
# 需要导入模块: from werkzeug.test import EnvironBuilder [as 别名]
# 或者: from werkzeug.test.EnvironBuilder import get_request [as 别名]
def test_service_unavailable(self):
"Test service availability."
class IndefiniteUnavailableResource(Resource):
unavailable = True
resource = IndefiniteUnavailableResource()
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 503)
self.assertTrue("retry-after" not in response.headers)
class DeltaUnavailableResource(Resource):
unavailable = 20
resource = DeltaUnavailableResource()
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 503)
self.assertEqual(response.headers["retry-after"], 20)
from datetime import datetime, timedelta
from werkzeug.http import http_date
future = datetime.now() + timedelta(seconds=20)
class DatetimeUnavailableResource(Resource):
unavailable = future
resource = DatetimeUnavailableResource()
environ = EnvironBuilder(**self.params)
request = environ.get_request(cls=Request)
response = resource(request)
self.assertEqual(response.status_code, 503)
self.assertEqual(response.headers["retry-after"], http_date(future))