Vérifiez le nombre de fois où la requête (sql) a été lancée dans django avec un test

Je ne peux pas utiliser TransactionTestCase.assertNumQueries docilement parce que j'ai dérangé la connexion DB pour les tests. Au cas où.

# 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_les requêtes sont bien
        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()

Référence: [Django: existe-t-il un moyen de compter les requêtes SQL à partir d'un test unitaire?](Http://stackoverflow.com/questions/1254170/django-is-there-a-way-to-count-sql-queries- à partir d'un test unitaire)

Recommended Posts

Vérifiez le nombre de fois où la requête (sql) a été lancée dans django avec un test
Trouvez le nombre de jours dans un mois
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Obtenez le nombre d'éléments spécifiques dans la liste python
Comment générer une requête à l'aide de l'opérateur IN dans Django
[Python] Programmation pour trouver le nombre de a dans une chaîne de caractères qui se répète un nombre spécifié de fois.
Récupérer la chaîne de requête (chaîne de requête) avec Django
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Si vous voulez un singleton en python, considérez le module comme un singleton
Comptez le nombre de fois que deux valeurs apparaissent simultanément dans un élément de type itérateur Python 3
Ecrire le test dans la docstring python
Générez une liste contenant le nombre de jours du mois en cours.
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
traitement (python) Diagramme les coordonnées de la liste Spécifiez le nombre de fois dans draw ()
Créez un BOT qui affiche le nombre de personnes infectées dans le nouveau Corona
Vous marchez en spirale dans un monde où les murs de la croix s'élèvent (simulation)
Je n'ai pas eu besoin d'écrire décorateur en classe Merci contextmanager
Sortie du nombre de cœurs de processeur en Python
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Sortie sous la forme d'un tableau python
L'histoire de l'affichage des fichiers multimédias dans Django
Jusqu'à ce que vous créiez une nouvelle application dans Django
Si vous définissez une méthode dans une classe Ruby, puis définissez une méthode dans celle-ci, elle devient une méthode de la classe d'origine.
[Python] Un programme qui trouve le nombre d'étapes le plus court dans un jeu qui traverse les nuages
[Django] Essayons de clarifier la partie de Django qui était en quelque sorte à travers le test
Découvrez le nombre maximum de caractères dans un texte multiligne stocké dans un bloc de données
[Python] Représentation du nombre de plaintes des compagnies d'assurance-vie dans un graphique à barres
Trouvez une ligne directrice pour le nombre de processus / threads à définir sur le serveur d'applications
Vérifiez si la chaîne est un nombre en python
[Python] Un programme qui compte le nombre de vallées
Comment obtenir le nombre de chiffres en Python
Comptez le nombre de paramètres dans le modèle d'apprentissage en profondeur
Obtenir la taille (nombre d'éléments) de Union Find en Python
Un mémorandum sur la mise en œuvre des recommandations en Python
Notez ce que vous voulez faire à l'avenir avec Razpai
VisibleDeprecation Avertissement: l'utilisation d'un nombre non entier au lieu d'un entier entraînera une erreur dans le futur
Si vous tirez une loterie avec 1% de chances d'apparaître 100 fois de suite, gagnerez-vous une fois?
Comment écrire quand on veut mettre un nombre après le numéro de groupe à remplacer par une expression régulière dans re.sub de Python
Maya | Découvrez le nombre de polygones dans l'objet sélectionné
Remarque sur le comportement par défaut de collate_fn dans PyTorch
J'ai participé à l'activité de traduction du document officiel Django
Découvrez la largeur apparente d'une chaîne en python
Examiner la plage d'erreur dans le nombre de décès dus à la pneumonie
Maintenance de l'environnement de développement Django + MongoDB (en cours d'écriture)
Avoir le graphique d'équation de la fonction linéaire dessiné en Python
L'histoire du champ de modèle Django disparaissant de la classe
Résumé des points d'achoppement à Django pour la première fois
[Note] Importation de fichiers dans le répertoire parent en Python
[Homologie] Comptez le nombre de trous dans les données avec Python
Obtenez le nombre d'occurrences pour chaque élément de la liste
Trouver les valeurs propres d'une vraie matrice symétrique en Python
Enregistrez ce que vous avez appris au cours des quatre mois de formation d'ingénieur logiciel en interne (* actuellement en cours)
Paramètres d'exécution d'un test à chaque fois que vous enregistrez un fichier dans l'éditeur à l'aide de watchmedo (chien de garde)