Ich versuche POST Daten zu einer Sicht in django-rest-framework
zu testen, die Authentifizierung erfordert. Aber ich kann nicht. Ich habe viele Fäden vermeintlicher Lösungen gelesen, finde aber keine, die mich lösen.Testen von POST mit Authentifizierung in Django Rest Framework
Serializer:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
Ausblick:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
Test:
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()
erhalte ich diesen Fehler:
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
----------------------------------------------------------------------
Hatte gelesen drf
Dokumentation zu testen, kann aber nicht sehen, was ich falsch mache.
Danke für die Tipps Mann. Ich habe hier verifiziert und user.password ist erreichbar. By the way, ich lerne Django TDD mit http://www.obeythetestinggoat.com/, eine großartige Ressource. Aber es gibt einen schnellen Anhang, der insbesondere Test-API und 'django-rest-framework' abdeckt. Keine Authentifizierungstests Trotzdem danke für die Hilfe. – Caco