Как имитировать запрос AJAX с помощью тестового клиента Flask? - PullRequest
13 голосов
/ 30 января 2012

Тестирование приложений Flask выполняется с помощью:

# main.py
from flask import Flask, request

app = flask.Flask(__name__)

@app.route('/')
def index():
    s = 'Hello world!', 'AJAX Request: {0}'.format(request.is_xhr)
    print s
    return s

if __name__ == '__main__':
    app.run()

Тогда вот мой тестовый скрипт:

# test_script.py
import main
import unittest

class Case(unittest.TestCase):
    def test_index():
        tester = app.test_client()
        rv = tester.get('/')
        assert 'Hello world!' in rv.data

if __name__ == '__main__':
    unittest.main()

В тестовом выводе я получу:

Hello world! AJAX Request: False

Вопрос

Как мне проверить приложение с AJAX-запросами?

Ответы [ 2 ]

21 голосов
/ 30 января 2012

Попробуйте это: -

def test_index():
    tester = app.test_client()
    response = tester.get('/', headers=[('X-Requested-With', 'XMLHttpRequest')])
    assert 'Hello world!' in response.data
1 голос
/ 05 мая 2016
import json

def test_index():
    data = json.dumps({})
    client = app.test_client()
    headers = {
        'Content-Type': 'application/json',
    }
    response = client.post('/', data=data, headers=headers)
    data = json.loads(response.data)
    assert data

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...