【发布时间】:2017-08-15 07:16:04
【问题描述】:
我正在尝试测试将数据发布到django-rest-framework 中需要身份验证的视图。但我不能。我已经阅读了许多假设解决方案的主题,但找不到任何对我有用的解决方案。
序列化器:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
查看:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
测试:
class ResearcherAPITest(APITestCase):
base_url = reverse('api_researchers')
# ...
def test_POSTing_a_new_researcher(self):
user = User.objects.create(username='lab1', password='nep-lab1')
self.client.login(username=user.username, password=user.password)
response = self.client.post(
self.base_url,
{
'first_name': 'João',
'surname': 'das Rosas',
}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
new_researcher = Researcher.objects.first()
self.assertEqual(new_researcher.first_name, 'João')
self.client.logout()
我收到此错误:
FAIL: test_POSTing_a_new_researcher (experiments.tests.test_api.ResearcherAPITest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/caco/Workspace/nep-system/nep/experiments/tests/test_api.py", line 130, in test_POSTing_a_new_researcher
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
AssertionError: 403 != 201
----------------------------------------------------------------------
已阅读 drf 测试文档,但看不到我做错了什么。
【问题讨论】:
标签: python django unit-testing django-rest-framework