能够访问cookie"干净地"在测试环境中

时间:2015-11-04 09:49:20

标签: python cookies flask

我将如何测试我的应用程序中的cookie,这些cookie是在请求过程中以pythonic的方式设置的?我目前这样做的方式(有效)并不是很方便,但这里是:

def test_mycookie(app, client):
    def getcookie(name):
        try:
            cookie = client.cookie_jar._cookies['mydomain.dev']['/'][name]
        except KeyError:
            return None
        else:
            return cookie

    with app.test_request_context():
        client.get('/non-existing-path/')
        assert getcookie('mycookie') is None
        client.get('/')
        assert getcookie('mycookie').value == '"xyz"'

使用flask.request.cookies并不适合我,因为它总是返回一个空字典。也许我做错了?

def test_mycookie2(app, client):

    with app.test_request_context():
        client.get('/non-existing-path/')
        assert 'mycookie' not in request.cookies
        client.get('/')
        request.cookies['mycookie']  # Raises KeyError

1 个答案:

答案 0 :(得分:0)

这个怎么样?使用with app.test_client() as tc: tc.get('/non-existing-path/') assert 'mycookie' not in request.cookies tc.get('/') print request.cookies['mycookie'] 会让我们更长时间地保持上下文。

<div class="social twitter"></div>

另外,请给我们一个最小的例子,以便我们可以重现这个问题。