Тесты POST-запроса с pytest - PullRequest
0 голосов
/ 03 мая 2020

Я нахожусь в процессе написания теста в pytest для моего приложения python (flask). Функция AddMessage получает пользовательский ввод, генерирует сообщение и сохраняет его в базе данных.

@app.route('/AddMessage',methods = ['POST', 'GET'])
def AddMessage():
   if request.method == 'POST':
       data = request.form
       user_id = data['user_id']
       content = data['content']
       paticipants = [data['participant1'],data['participant2'],data['participant3']]
       m = Message(user_id=user_id,content=content,participants=paticipants)
       db.session.add(m)
       db.session.commit()
       return 'Your message has been successfully saved'

Как я могу проверить это? В конце концов, во время теста я не могу получить информацию, могу я?

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете попробовать этот код:

def test_addMessage(self):
        with self.app() as client, self.app_context():
            data = {
                "user_id": "1", 
                "content": "a content", 
                "participant1":"participant1",
                "participant2":"participant2",
                "participant3":"participants"
            }

            response = client.post(
                "/AddMessage",
                data=json.dumps(data),
                headers={"Content-Type": "application/json"},
            )
            self.assertEqual(201, response.status_code)
            self.assertEqual('Your message has been successfully saved', response.data)

Другим более простым способом является запрос:

import requests
import json
data = {
         "user_id": "1", 
         "content": "a content", 
         "participant1":"participant1",
         "participant2":"participant2",
         "participant3":"participants"
       }
response = requests.post("/AddMessage", json=json.dumps(data))
json_response = response.json()
print(json_response)

Для получения более подробной информации прочитайте запросы Документация

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