@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 запросов внутри вашего теста.