當前位置: 首頁>>代碼示例>>Python>>正文


Python falcon.testing方法代碼示例

本文整理匯總了Python中falcon.testing方法的典型用法代碼示例。如果您正苦於以下問題:Python falcon.testing方法的具體用法?Python falcon.testing怎麽用?Python falcon.testing使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在falcon的用法示例。


在下文中一共展示了falcon.testing方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_errors

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_errors(sentry_init, capture_exceptions, capture_events):
    sentry_init(integrations=[FalconIntegration()], debug=True)

    class ZeroDivisionErrorResource:
        def on_get(self, req, resp):
            1 / 0

    app = falcon.API()
    app.add_route("/", ZeroDivisionErrorResource())

    exceptions = capture_exceptions()
    events = capture_events()

    client = falcon.testing.TestClient(app)

    try:
        client.simulate_get("/")
    except ZeroDivisionError:
        pass

    (exc,) = exceptions
    assert isinstance(exc, ZeroDivisionError)

    (event,) = events
    assert event["exception"]["values"][0]["mechanism"]["type"] == "falcon" 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:27,代碼來源:test_falcon.py

示例2: test_falcon_large_json_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_falcon_large_json_request(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    data = {"foo": {"bar": "a" * 2000}}

    class Resource:
        def on_post(self, req, resp):
            assert req.media == data
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", json=data)
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
        "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
    }
    assert len(event["request"]["data"]["foo"]["bar"]) == 512 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:27,代碼來源:test_falcon.py

示例3: test_falcon_empty_json_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_falcon_empty_json_request(sentry_init, capture_events, data):
    sentry_init(integrations=[FalconIntegration()])

    class Resource:
        def on_post(self, req, resp):
            assert req.media == data
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", json=data)
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["request"]["data"] == data 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:22,代碼來源:test_falcon.py

示例4: test_falcon_raw_data_request

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_falcon_raw_data_request(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    class Resource:
        def on_post(self, req, resp):
            sentry_sdk.capture_message("hi")
            resp.media = "ok"

    app = falcon.API()
    app.add_route("/", Resource())

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_post("/", body="hi")
    assert response.status == falcon.HTTP_200

    (event,) = events
    assert event["request"]["headers"]["Content-Length"] == "2"
    assert event["request"]["data"] == "" 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:22,代碼來源:test_falcon.py

示例5: test_500

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_500(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            1 / 0

    app.add_route("/", Resource())

    def http500_handler(ex, req, resp, params):
        sentry_sdk.capture_exception(ex)
        resp.media = {"message": "Sentry error: %s" % sentry_sdk.last_event_id()}

    app.add_error_handler(Exception, http500_handler)

    events = capture_events()

    client = falcon.testing.TestClient(app)
    response = client.simulate_get("/")

    (event,) = events
    assert response.json == {"message": "Sentry error: %s" % event["event_id"]} 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:26,代碼來源:test_falcon.py

示例6: test_bad_request_not_captured

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_bad_request_not_captured(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])
    events = capture_events()

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            raise falcon.HTTPBadRequest()

    app.add_route("/", Resource())

    client = falcon.testing.TestClient(app)

    client.simulate_get("/")

    assert not events 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:19,代碼來源:test_falcon.py

示例7: make_client

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def make_client(make_app):
    def inner():
        app = make_app()
        return falcon.testing.TestClient(app)

    return inner 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:8,代碼來源:test_falcon.py

示例8: test_error_in_errorhandler

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_error_in_errorhandler(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            raise ValueError()

    app.add_route("/", Resource())

    def http500_handler(ex, req, resp, params):
        1 / 0

    app.add_error_handler(Exception, http500_handler)

    events = capture_events()

    client = falcon.testing.TestClient(app)

    with pytest.raises(ZeroDivisionError):
        client.simulate_get("/")

    (event,) = events

    last_ex_values = event["exception"]["values"][-1]
    assert last_ex_values["type"] == "ZeroDivisionError"
    assert last_ex_values["stacktrace"]["frames"][-1]["vars"]["ex"] == "ValueError()" 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:30,代碼來源:test_falcon.py

示例9: test_does_not_leak_scope

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_does_not_leak_scope(sentry_init, capture_events):
    sentry_init(integrations=[FalconIntegration()])
    events = capture_events()

    with sentry_sdk.configure_scope() as scope:
        scope.set_tag("request_data", False)

    app = falcon.API()

    class Resource:
        def on_get(self, req, resp):
            with sentry_sdk.configure_scope() as scope:
                scope.set_tag("request_data", True)

            def generator():
                for row in range(1000):
                    with sentry_sdk.configure_scope() as scope:
                        assert scope._tags["request_data"]

                    yield (str(row) + "\n").encode()

            resp.stream = generator()

    app.add_route("/", Resource())

    client = falcon.testing.TestClient(app)
    response = client.simulate_get("/")

    expected_response = "".join(str(row) + "\n" for row in range(1000))
    assert response.text == expected_response
    assert not events

    with sentry_sdk.configure_scope() as scope:
        assert not scope._tags["request_data"] 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:36,代碼來源:test_falcon.py

示例10: test_application_auth

# 需要導入模塊: import falcon [as 別名]
# 或者: from falcon import testing [as 別名]
def test_application_auth(mocker):
    # Mock DB to get 'abc' as the dummy app key
    connect = mocker.MagicMock(name='dummyDB')
    cursor = mocker.MagicMock(name='dummyCursor', rowcount=1)
    cursor.fetchone.return_value = ['abc']
    connect.cursor.return_value = cursor
    db = mocker.MagicMock()
    db.connect.return_value = connect
    mocker.patch('oncall.auth.db', db)

    # Set up dummy API for auth testing
    api = falcon.API(middleware=[ReqBodyMiddleware()])
    api.add_route('/dummy_path', DummyAPI())

    # Test bad auth
    client = falcon.testing.TestClient(api)
    re = client.simulate_get('/dummy_path', headers={'AUTHORIZATION': 'hmac dummy:abc'})
    assert re.status_code == 401
    re = client.simulate_post('/dummy_path', json={'example': 'test'}, headers={'AUTHORIZATION': 'hmac dummy:abc'})
    assert re.status_code == 401

    # Test good auth for GET request
    window = int(time.time()) // 5
    text = '%s %s %s %s' % (window, 'GET', '/dummy_path?abc=123', '')
    HMAC = hmac.new(b'abc', text.encode('utf-8'), hashlib.sha512)
    digest = base64.urlsafe_b64encode(HMAC.digest()).decode('utf-8')
    auth = 'hmac dummy:%s' % digest

    re = client.simulate_get('/dummy_path', params={'abc': 123}, headers={'AUTHORIZATION': auth})
    assert re.status_code == 200

    window = int(time.time()) // 5
    body = '{"example": "test"}'
    text = '%s %s %s %s' % (window, 'POST', '/dummy_path', body)
    HMAC = hmac.new(b'abc', text.encode('utf-8'), hashlib.sha512)
    digest = base64.urlsafe_b64encode(HMAC.digest()).decode('utf-8')
    auth = 'hmac dummy:%s' % digest

    re = client.simulate_post('/dummy_path', body=body, headers={'AUTHORIZATION': auth})
    assert re.status_code == 201 
開發者ID:linkedin,項目名稱:oncall,代碼行數:42,代碼來源:test_auth.py


注:本文中的falcon.testing方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。