Projet

Général

Profil

Development #46988

tests: ajouter une fixture pour simuler de grosses bases d'utilisateur

Ajouté par Benjamin Dauvergne il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
24 septembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Avec une option --slow pour ne pas lancer ça dans chaque branche wip/.


Fichiers

Révisions associées

Révision 9d9e34ee (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

ci: add a --slow options to also run slow tests (#46988)

Révision 45871203 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 3 ans

tests: add a large_userbase fixture (#46988)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

#2

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
#3

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Fichier 0001-tests-add-a-large_userbase-fixture-46988.patch ajouté
Vite fait avec ce patch, pour 200 requêtes donc,
  • Sans index
    152.55s call     tests/test_large_userbase.py::test_large_userbase_find_duplicates
    147.55s call     tests/test_large_userbase.py::test_large_userbase_find_duplicates_with_birthdate
    

    Soit 0.75s par requête.
  • Avec index
    30.44s call     tests/test_large_userbase.py::test_large_userbase_find_duplicates_with_birthdate
    24.06s call     tests/test_large_userbase.py::test_large_userbase_find_duplicates
    

    Soit 0.15s par requête.

Conclusion, ça marche comme il faut.

#4

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Fichier 0001-tests-add-a-large_userbase-fixture-46988.patch supprimé
#5

Mis à jour par Valentin Deniaud il y a plus de 3 ans

Valentin Deniaud a écrit :

Vite fait avec ce patch,

Celui-là.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

#7

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

Petites remarques mais comme tu veux.

-PGPORT=`python -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -r""" 
+A2_PYTESTOPTIONS=--slow PGPORT=`python -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -r""" 

C'est moche comme diff, moyen d'ajouter A2_PYTESTOPTIONS=--slow sur une nouvelle ligne ?
    tests: add a large_userbase fixture (#46988)

Et pourtant modif des tests rbac de dedans, j'aurais bien vu deux commits, le premier qui introduit slow et l'utilise dans rbac, le second qui fasse ce que le titre du commit dit.
#8

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

C'est mieux comme ça ? Mais je ne sais pas si ma ligne de shell avec un \ va marcher.

#9

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée

Benjamin Dauvergne a écrit :

Mais je ne sais pas si ma ligne de shell avec un \ va marcher.

Moi non plus, en fait je ne comprends pas pourquoi il y a le droit à un saut à la ligne après ${env.TMPDIR}/venv/bin/pip install tox et pas après PYTESTOPTIONS=--slow, donc fais au plus sûr.

#10

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 458712039c3f88d2576ca8241daf30600f76ba15
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Sep 24 21:39:45 2020 +0200

    tests: add a large_userbase fixture (#46988)

commit 9d9e34ee6a3ef079ce3f8fcef7cf5986e8cc2145
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Oct 1 11:49:10 2020 +0200

    ci: add a --slow options to also run slow tests (#46988)
#11

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF