当前位置: 首页>>代码示例>>Python>>正文


Python EnvironBuilder.get_request方法代码示例

本文整理汇总了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)
开发者ID:bruth,项目名称:resources,代码行数:35,代码来源:cases.py

示例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)
开发者ID:bruth,项目名称:resources,代码行数:28,代码来源:cases.py

示例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")
开发者ID:bruth,项目名称:resources,代码行数:34,代码来源:cases.py

示例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)
开发者ID:bruth,项目名称:resources,代码行数:27,代码来源:cases.py

示例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()
开发者ID:gaoussoucamara,项目名称:simens-cerpad,代码行数:28,代码来源:base_request.py

示例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()
开发者ID:connoryang,项目名称:dec-eve-serenity,代码行数:10,代码来源:wrappers.py

示例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)
开发者ID:Tapyr,项目名称:tapyr,代码行数:10,代码来源:Test_Command.py

示例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)
开发者ID:DerRechner,项目名称:Hanabi,代码行数:11,代码来源:test_rest.py

示例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"'
开发者ID:DerRechner,项目名称:Hanabi,代码行数:12,代码来源:test_rest.py

示例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)
开发者ID:bruth,项目名称:resources,代码行数:56,代码来源:cases.py

示例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")
开发者ID:ajones620,项目名称:werkzeug,代码行数:14,代码来源:test_test.py

示例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'
开发者ID:0xJCG,项目名称:dubtrack-technical-test,代码行数:14,代码来源:test.py

示例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')
开发者ID:poffdeluxe,项目名称:werkzeug,代码行数:14,代码来源:test.py

示例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 == []
开发者ID:DerRechner,项目名称:Hanabi,代码行数:16,代码来源:test_rest.py

示例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))
开发者ID:bruth,项目名称:resources,代码行数:39,代码来源:cases.py


注:本文中的werkzeug.test.EnvironBuilder.get_request方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。