Ich versuche, einige Tests für eine Django-Anwendung zu schreiben, an der ich arbeite, aber ich habe mich noch nicht für die genauen URLs entschieden, die ich für jede Ansicht verwenden möchte. Daher verwende ich benannte URLs in den Tests.
Ich habe zum Beispiel eine URL namens Dashboard:
c = Client()
resp = c.get(reverse('dashboard'))
Diese Ansicht sollte nur für angemeldete Benutzer verfügbar sein. Wenn der aktuelle Benutzer anonym ist, sollte er auf die Anmeldeseite umgeleitet werden, die ebenfalls eine benannte URL ist. Dabei wird jedoch ein zusätzlicher GET-Parameter verwendet, um die URL zu verfolgen, von der er gerade gekommen ist, was zu folgendem Ergebnis führt:
/login?next=dashboard
Wenn ich dann versuche, diese Umleitung zu testen, scheitert sie an diesen zusätzlichen Parametern:
# It's expecting '/login' but gets '/login?next=dashboard'
self.assertRedirects(resp, reverse('login'))
Offensichtlich funktioniert es, wenn ich sie in den Test fest einbaue:
self.assertRedirects(resp, '/login?next=dashboard')
Aber wenn ich mich jemals dazu entschließe, die URL für meine Dashboard-Ansicht zu ändern, müsste ich jeden Test, der sie verwendet, aktualisieren.
Gibt es etwas, was ich tun kann, um die Handhabung dieser zusätzlichen Parameter zu erleichtern?
Jeder Rat ist willkommen.
Danke.