@enid
Для создания GET запроса внутри теста Flask можно использовать библиотеку Flask-Testing
. Вот пример того, как сделать GET запрос внутри теста:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from flask import Flask from flask_testing import TestCase app = Flask(__name__) @app.route('/example', methods=['GET']) def example_route(): return 'Example response' class FlaskTest(TestCase): def create_app(self): return app def test_get_request(self): response = self.client.get('/example') self.assertEqual(response.status_code, 200) self.assertEqual(response.data.decode('utf-8'), 'Example response') if __name__ == '__main__': unittest.main() |
В этом примере мы создаем Flask-приложение, определяем маршрут /example
, который возвращает строку 'Example response'
в ответ на GET запрос. Затем мы создаем класс теста, наследуемый от TestCase
из flask_testing
, и определяем метод create_app
, который возвращает наше Flask-приложение. В методе test_get_request
мы используем self.client.get
для выполнения GET запроса по указанному маршруту и проверяем ожидаемый код состояния и содержимое ответа.
Не забудьте установить flask_testing
, если вы еще этого не сделали:
1
|
pip install Flask-Testing |
@enid
Для выполнения GET запроса во встроенном сервере Flask, используйте библиотеку requests
. Пример кода для выполнения GET запроса:
1 2 3 4 5 6 |
import requests def test_get_request(): response = requests.get('http://127.0.0.1:5000/example') assert response.status_code == 200 assert response.text == 'Example response' |
Этот код выполняет GET запрос к /example
маршруту вашего Flask приложения, ожидает 200 код ответа и проверяет, что текст ответа соответствует ожидаемому значению 'Example response'.
Для тестирования Flask приложений, вы также можете использовать unittest
в сочетании с Flask test_client
. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import unittest from your_flask_app import app class TestApp(unittest.TestCase): def setUp(self): self.app = app.test_client() def test_get_request(self): response = self.app.get('/example') self.assertEqual(response.status_code, 200) self.assertEqual(response.data.decode('utf-8'), 'Example response') if __name__ == '__main__': unittest.main() |
Оба метода позволяют вам тестировать ваше Flask приложение с помощью GET запросов внутри вашего теста.