[PYTHON] Ich möchte Datetime.now in Djangos Test reparieren

Einführung

Ich wollte Datetime.now (timezone.now) unbedingt reparieren, als ich einen Test für Django machte. Das Memo.

Dinge die zu tun sind

Code

Zu testender Code

test_app/views.py


from django.utils import timezone
...

def hogehoge():
    #Holen Sie sich die aktuelle Zeit einschließlich Zeitzone ab. datetime.datetime(2020, 10, 30, 15, 35, 29, 482661, tzinfo=<UTC>)
    return timezone.now()

Ich möchte Code wie diesen testen.

Testcode

test_app/tests.py


from unittest import mock
...

class TestClass(TestCase):
    @mock.patch("test_app.views.timezone.now")
    def test_hogehoge(self, mocked_now):
        now = timezone.make_aware(timezone.datetime(2020, 10, 30, 19, 30))
        mocked_now.return_value = now  #Stellen Sie den Rückgabewert ein
        r = hogehoge()
        return self.assertEqual(r, now)

Dies ersetzt timezone.now im Code durch einen Mock.

Schließlich

Der automatische Test von PyCharm eignet sich zum Testen. Wenn Sie den Code neu schreiben, wird er automatisch erneut ausgeführt.

Recommended Posts

Ich möchte Datetime.now in Djangos Test reparieren
[Django] Ich möchte mich nach einer neuen Registrierung automatisch anmelden
Ich möchte Spyder an die Taskleiste anheften
Ich möchte in der Einschlussnotation drucken
Ich möchte Matplotlib in PySimpleGUI einbetten
Ich möchte Dunnetts Test in Python machen
Ich möchte mit Python ein Fenster erstellen
Ich möchte DB-Informationen in einer Liste speichern
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte die Django Debug Toolbar in Ajax-Anwendungen verwenden
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte eine Django-App auf Heroku hochladen
[Django-Memo] Ich möchte die angemeldeten Benutzerinformationen im Voraus im Formular festlegen.
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mich mit Backpropagation (tf.custom_gradient) (Tensorflow) selbst verwenden.
Ich möchte in der Django-Verschiebungstabelle scrollen, aber ...
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich möchte eine Datei mit Python zufällig testen
TemplateView-Muster, die Sie zuerst in Django lernen möchten
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte R-Datensatz mit Python verwenden
Ich möchte am Ende etwas mit Python machen
Ich möchte Strings in Kotlin wie Python manipulieren!
Ich möchte SUDOKU lösen
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Ich möchte eine Spalte mit NA in R einfach löschen
Ich möchte so etwas wie Uniq in Python sortieren
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben
Ich kann mich mit Django 3 nicht auf der Admin-Seite anmelden
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen
[Einführung in Pytorch] Ich möchte Sätze in Nachrichtenartikeln generieren
Ich möchte eindeutige Werte in einem Array oder Tupel zählen
Ich möchte die gültigen Zahlen im Numpy-Array ausrichten
Ich möchte Python mit VS-Code ausführen können
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich wollte den AWS-Schlüssel nicht in das Programm schreiben
Fehler im Zusammenhang mit Memcached in Django
Ich möchte systemd grob verstehen
Wie man CSS in Django reflektiert
Ich möchte Bilder kratzen und trainieren
Ich möchte ○○ mit Pandas machen
Pin factory_boy Startwert in Django
Ich möchte Yolos Anmerkung kopieren
Ich möchte mit Python debuggen
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich möchte Rails mit Rails auch in einer vagabundierenden Umgebung betreiben
LINEbot-Entwicklung möchte ich den Betrieb in der lokalen Umgebung überprüfen
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Ich möchte die zweite Zeile zum Spaltennamen in Pandas machen
Ich möchte den G-Test in einem Monat Tag 1 bestehen
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Ich möchte die Farbe ändern, indem ich auf den Streupunkt in matplotlib klicke