zu Unittest habe ich eine Anforderung etwas wie folgt aus:Wie Session-Timeout in Django
Sobald der Benutzer signsup (und im Wartezustand sein wird untill er seine E-Mail-Adresse bestätigt), eine Session-Variable gesetzt ist etwas wie "FIRST_TIME_FREE_SESSION_EXPIRY_AGE_KEY" (tut uns leid, wenn der Name verwirrend klingt!), der auf ein Datetime-Objekt gesetzt wird, das der aktuellen Zeit 8 Stunden hinzufügt.
Wie sich dies auf den Benutzer auswirkt, erhält der Benutzer 8 Stunden Zeit, um alle Funktionen unserer Website zu nutzen, ohne seine registrierte E-Mail-Adresse zu bestätigen. Nach 8 Stunden zeigt jede Ansicht/Seite ein großes Banner, das den Benutzer zur Bestätigung auffordert. (All diese Funktionalität wird durch die Verwendung eines einzelnen Dekorators "use_confirmed_user" für jede Ansicht erreicht).
Ich möchte die gleiche Funktionalität mit Django Unittest Addon (TestCase-Klasse) testen. Wie mache ich es?
Update: Muss ich den Wert der Sitzungsvariablen manuell aktualisieren (8 Stunden bis ein paar Sekunden geändert), um es fertig zu machen? Oder gibt es einen besseren Weg?
Update: Das mag verrückt klingen, aber ich möchte eine Anfrage aus der Zukunft simulieren.
[freezegun] (https://pypi.python.org/pypi/freezegun/) lassen Sie uns Zeit nach Belieben in den Tests manipulieren. Der resultierende Test wird auch schön explizit sein. –