У меня есть эти тестовые случаи в моем tests.py
"""Unit tests for client application."""
from django.test import TestCase
from rest_framework.test import APIClient
# Create your tests here.
class ClientTestCase(TestCase):
api_client = APIClient()
def test_get_clients(self):
response = self.api_client.get('http://127.0.0.1:8000/client/clients/')
self.assertEqual(int(response.status_code), 200)
def test_add_client(self):
response = self.api_client.post(
path='http://127.0.0.1:8000/client/clients/',
data={
'name': 'Jon Snow',
'age': 18,
'gender': 'M',
'address': 'night watch wall',
'phone_number': '+9290078601',
'email': 'jon@nightwatch.com',
},
content_type='application/json'
)
self.assertEqual(response.status_code, 201)
Когда я запускаю эти тесты с помощью команды
python manage.py test --debug-mode client/ -v 3
test_get_clients
успешно и test_add_client
терпит неудачу как APIвозвращает 400
.
Когда я нажимаю на тот же API, с которым я столкнулся в test_add_client
- postman
, он возвращает ожидаемый результат.
Тело postman
API -
{
"name": "Bruce Wayne",
"age" : 23,
"gender" : "M",
"address" : "abc asdasd asdasd asdada",
"phone_number" : "+92 3242225259",
"email" : "abc@xyz.com"
}
и в заголовке есть Conent-Type:'application/json
, как я уже указал в моем тестовом примере.
Чего мне здесь не хватает? Вывод запущенного тестового примера не дает никакого понимания вообще.