Подтвердить что ты не робот

Как я могу подделать параметры request.POST и GET для модульного тестирования в Flask?

Я хотел бы подделать параметры запроса для модульного тестирования. Как я могу достичь этого в Flask?

4b9b3361

Ответ 1

Вы читали флаговые документы о тестировании?

Вы можете использовать следующее:

self.app.post('/path-to-request', data=dict(var1='data1', var2='data2', ...))
self.app.get('/path-to-request', query_string=dict(arg1='data1', arg2='data2', ...))

Ответ 2

POST:

self.app.post('/endpoint', data=params)

GET

self.app.get('/endpoint', query_string=params)

Ответ 3

Если вы предпочитаете использовать test_request_context:

import unittest
from myapp import extract_query_params

testapp = flask.Flask(__name__)

class TestFoo(unittest.TestCase):
    def test_happy(self):
        with testapp.test_request_context('?limit=1&offset=2'):
            limit, offset = extract_query_params(['limit', 'offset'])
            self.assertEquals(limit, 1)
            self.assertEquals(offset, 2)

Ответ 4

У меня все еще была проблема с этим при тестировании данных формы сообщения для регистрации в этом сработало для меня.

def login(self, username, password):
    return self.app.post('/', data='Client_id=' + username +'&Password=' + password,
                         follow_redirects=True,content_type='application/x-www-form-urlencoded')

Я нашел, что это так.

Chrome:   Режим разработчика → Doc → HTML-документ, который был запрошен → вкладка заголовков → данные формы → просмотр источника