Django und Unittest: UnboundLocalError

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Piet Lotus
User
Beiträge: 80
Registriert: Dienstag 14. November 2006, 10:40

Hallo zusammen,
ich beschäftige mich gerade mit Django (Version 1.0) und Unittests.
Ich habe eine "tests.py"-Datei erstellt und in das Verzeichnis mit der "models.py"-Datei gelegt. Die Tests starte ich ganz normal über "python manage.py test". Als Beispiel möchte ich meine "login"-Routine checken. Soweit funktioniert auch alles (hoffe ich...:-) )...Allerdings habe ich nun folgendes Problem, so lange ich in der "view.py"-Datei meine die login-Methode mit

Code: Alles auswählen

return render_to_response(u'login.html',....
abschließe, läuft der entsprechende Text ohne Problem durch.
Ändere ich allerdings den Code folgendermaßen ab:

Code: Alles auswählen

zeigeSeite = u'login.html'
return render_to_response(zeigeSeite,....

Ersetze also die HTML-Seite durch eine Variable, dann ergibt es beim Testdurchlauf folgender Fehler:

Code: Alles auswählen

UnboundLocalError: local variable 'zeigeSeite' referenced before assignment


Wie kann ich für Unittests Variablen in der "render_to_response"-Methode initialisieren?

Vielleicht hat ja jemand Zeit mir über die Feiertage "unter die Arme" zu greifen...
Besten Dank schon mal und frohes Fest
Piet
Piet Lotus
User
Beiträge: 80
Registriert: Dienstag 14. November 2006, 10:40

Hallo zusammen,
ich hab den Fehler gefunden und das Problem gelöst...Nach der "richtigen" Formulierung meiner Frage viel mir auf, das ich in der login-Methode einen Post-Zweig habe, in dem die entsprechenden Variablen nicht gesetzt waren...Ich bin urlaubsreif...:-)
Sorry also an alle, die sich schon Gedanken gemacht haben.
Viele Grüße
Piet
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Nur so nebenbei: An deinem Problem siehst du vlt, dass es sinnvoll wäre den kompletten view zu pasten, so kann dir doch niemand helfen…
Piet Lotus
User
Beiträge: 80
Registriert: Dienstag 14. November 2006, 10:40

Hallo apollo13,
du hast natürlich recht, es ist immer besser den Quellcode zu posten!...Ich war mir nur nicht sicher, ob ich von der "login.html", "urls.py", "view.py", "tests.py", usw. hätte alles posten sollen, zumal das extrahieren, bzw. abstrahieren zur Aufbreitung aus einer Produktions-Anwendung "etwas" gedauert hätte. (Und das Problem hatte mich leider schon länger geärgert...) Ich lerne daraus erstmal, dass ich mir eine "Django-Spielumgebung" aufsetze, wo ich meine "Probleme" testen kann und ggf. Material habe, das ich ohne große Umstände posten kann, reduziert auf das Problem und ohne Balast ...
Danke noch mal für den Hinweis...
Frohes Fest
Piet
Antworten