如何在Bottle.py中测试重定向?

时间:2017-12-11 16:12:08

标签: python redirect testing pytest bottle

我想在Bottle应用程序中测试重定向。不幸的是我没有找到测试重定向位置的方法。到目前为止,我只能通过测试BottleException被引发来测试重定向是否已经存在。

def test_authorize_without_token(mocked_database_utils):
  with pytest.raises(BottleException) as resp:
    auth_utils.authorize()

有没有办法获取HTTP响应状态代码或/和重定向位置?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

WebTest是测试WSGI应用程序的全功能且简单的方法。这是一个检查重定向的示例:

from bottle import Bottle, redirect
from webtest import TestApp

# the real webapp
app = Bottle()


@app.route('/mypage')
def mypage():
    '''Redirect'''
    redirect('https://some/other/url')


def test_redirect():
    '''Test that GET /mypage redirects'''

    # wrap the real app in a TestApp object
    test_app = TestApp(app)

    # simulate a call (HTTP GET)
    resp = test_app.get('/mypage', status=[302])

    # validate the response
    assert resp.headers['Location'] == 'https://some/other/url'


# run the test
test_redirect()