[PYTHON] Überprüfen Sie mit einem Test, wie oft die Abfrage (SQL) in Django ausgelöst wurde

Ich kann TransactionTestCase.assertNumQueries nicht gehorsam zum Testen verwenden, da ich die DB-Verbindung zum Testen durcheinander gebracht habe. Im Falle.

# coding: utf-8

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")

from django.conf import settings
from django.db import connections

import unittest, pprint
from collections import deque
from core.models import Kvs, Hoge


class TestKvs(unittest.TestCase):

    def setUp(self):
        settings.DEBUG = True

    def tearDown(self):
        # django.db. reset_Anfragen sind in Ordnung
        connections['default'].queries_log = deque()  
        settings.DEBUG = False

    def test_simple(self):
        hoge = list(Hoge.objects.all())[0]
        # select
        self.assertEqual(len(connections['default'].queries), 1)

        Kvs.set(hoge.id, hoge)
        # select, begin, update
        self.assertEqual(len(connections['default'].queries), 4)

        got = Kvs.get(hoge.id)
        # select
        self.assertEqual(got.id, hoge.id)
        self.assertEqual(len(connections['default'].queries), 5)


if __name__ == "__main__":
    unittest.main()

Referenz: [Django: Gibt es eine Möglichkeit, SQL-Abfragen aus einem Komponententest zu zählen?](Http://stackoverflow.com/questions/1254170/django-is-there-a-way-to-count-sql-queries- from-an-unit-test)

Recommended Posts

Überprüfen Sie mit einem Test, wie oft die Abfrage (SQL) in Django ausgelöst wurde
Finden Sie die Anzahl der Tage in einem Monat
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
So generieren Sie eine Abfrage mit dem IN-Operator in Django
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
Holen Sie sich die Abfragezeichenfolge (Abfragezeichenfolge) mit Django
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
Zählen Sie, wie oft zwei Werte gleichzeitig in einem Element vom Typ Python 3-Iterator angezeigt werden
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
Überprüfen Sie die speicherinterne Byte-Zeichenfolge der Gleitkommazahl in Python
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
Erstellen Sie einen BOT, der die Anzahl der infizierten Personen in der neuen Corona anzeigt
Sie wandeln spiralförmig in einer Welt, in der sich die Wände des Kreuzes erheben (Simulation)
Ich musste im Unterricht keinen Dekorateur schreiben. Danke Kontextmanager
Geben Sie die Anzahl der CPU-Kerne in Python aus
Holen Sie sich den Aufrufer einer Funktion in Python
Kopieren Sie die Liste in Python
Ausgabe in Form eines Python-Arrays
Die Geschichte der Anzeige von Mediendateien in Django
Bis Sie eine neue App in Django erstellen
Wenn Sie eine Methode in einer Ruby-Klasse definieren und dann eine Methode darin definieren, wird sie zu einer Methode der ursprünglichen Klasse.
[Python] Ein Programm, das die kürzeste Anzahl von Schritten in einem Spiel findet, das Wolken überquert
[Django] Lassen Sie uns versuchen, den Teil von Django zu klären, der im Test irgendwie durch war
Ermitteln Sie die maximale Anzahl von Zeichen in mehrzeiligem Text, die in einem Datenrahmen gespeichert sind
[Python] Darstellung der Anzahl der Beschwerden von Lebensversicherungsunternehmen in einem Balkendiagramm
Suchen Sie eine Richtlinie für die Anzahl der Prozesse / Threads, die auf dem Anwendungsserver festgelegt werden sollen
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
[Python] Ein Programm, das die Anzahl der Täler zählt
So ermitteln Sie die Anzahl der Stellen in Python
Zählen Sie die Anzahl der Parameter im Deep-Learning-Modell
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
VisibleDeprecationWarning: Die Verwendung einer Nicht-Ganzzahl anstelle einer Ganzzahl führt in Zukunft zu einem Fehler
Wenn Sie eine Lotterie mit einer Chance von 1% ziehen, 100 Mal hintereinander zu erscheinen, werden Sie dann einmal gewinnen?
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Maya | Ermitteln Sie die Anzahl der Polygone im ausgewählten Objekt
Hinweis zum Standardverhalten von collate_fn in PyTorch
Ich habe an der Übersetzungsaktivität des offiziellen Django-Dokuments teilgenommen
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Untersuchen Sie den Fehlerbereich bei der Anzahl der Todesfälle aufgrund einer Lungenentzündung
Wartung der Django + MongoDB-Entwicklungsumgebung (mitten im Schreiben)
Lassen Sie das Gleichungsdiagramm der linearen Funktion in Python zeichnen
Die Geschichte des Django-Modellfeldes verschwindet aus der Klasse
Zusammenfassung der Stolperpunkte in Django zum ersten Mal
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
Notieren Sie, was Sie in der viermonatigen internen Schulung für Software-Ingenieure gelernt haben (* derzeit in Bearbeitung).
Einstellungen zum Ausführen eines Tests jedes Mal, wenn Sie eine Datei mit watchmedo (watchdog) im Editor speichern