test(database): adapte les tests pour fonctionner en postgresql et sqlite3

Note:
sqlite et postgres n'inteprete pas order by de la meme maniere:
- sqlite: ' ' < 'A' et case sensitive
- postgresql ' ' > 'z' et case insensitve

on peut faire en sorte que l'order by soit case insensitve dans les 2
cas cependant le cas de l'espace (et sans doute des caracteres
accentues) donnent toujours un ordre different:
```
from django.db.models.function import Lower
...
class Etiquette(models.Model):
    class Meta:
        ordering = [Lower('designation')]
```
mais attention au bug:
https://code.djangoproject.com/ticket/30557
corrigé en django 3.0 mais sans doute pas en 2.2

Le bug empeche d'hériter d'un modele contenant un
ordering avec une fonction.

ajout d'une cible qtest en plus de test:
qtest réutilise la base de donnée (utile lorsqu'on test en postgresql)
test recrée la base de donnée quoiqu'il arrive (necessaire en cas de migrations)
pull/102/head
Vincent Adolphe 2019-11-08 14:08:18 +01:00
Parent cd20cd6bfe
révision 78aa00d237
5 fichiers modifiés avec 15 ajouts et 10 suppressions

Voir le fichier

@ -60,7 +60,7 @@ endif
.PHONY: help shell
.PHONY: init create-venv update install-deps migrate static static-local
.PHONY: check check-config serve lint
.PHONY: test twip check-selenium stest stwip stwip-gui full-test
.PHONY: test qtest twip check-selenium stest stwip stwip-gui full-test
.PHONY: clean clean-pyc clean-build clear-venv
.PHONY: black pre-commit isort
.PHONY: sql-reset psql-reset
@ -143,6 +143,9 @@ full-test: ### lance tous les tests (classique + selenium)
$(PYTHON) -m pytest --cov=gaby gaby
test: ### lance les tests de l'application via pytest
$(PYTHON) -m pytest -m 'not slow' --create-db --cov=gaby --cov-report=html --cov-report=term-missing gaby
qtest: ### lance les tests de l'application via pytest (quick)
$(PYTHON) -m pytest -m 'not slow' --cov=gaby --cov-report=html --cov-report=term-missing gaby
twip: ### lance les tests marques 'wip' de l'application via pytest

Voir le fichier

@ -1,5 +1,5 @@
ID;Statut bio;Forme juridique;agriculteur;collecteur;transformateur;com. gros;com. detail;autre;Désignation ou personne;Personne set;date de naissance;N. Siret;statut;adresse;ville;code postal;num. INSEE;commune;arrondissement;territoire;agence eau;enjeu eau;téléphone fixe;téléphone mobile;fax;courriel;URL du site web;date de saisie de l'enregistrement;date de dernière modification des informations;dernière modification par;origine du contact;Année du premier contact;Mois du premier contact;commentaire;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;étiquettes;publication sur l'annuaire du site;Activité principale;Activité principale bio;Activité(s) annexe(s);Assolement total;Assolement total bio;SAU à enjeu eau;SAU en biologique à enjeu eau;Première adhésion;date de dernière adhésion;date de première conversion
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A suivre;A voir;AMAP;BN papier;BN électronique;Bleue du Nord;Collectivité;Com';OC;OPA;PA;PRESSE;Projet 2015;Projet 2016;RHD;Terres en fête;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Amap;Asuivre;Avoir;BleueDuNord;BnElectronique;BnPapier;Collectivité;Com';OC;OPA;PA;PRESSE;Projet 2015;Projet 2016;RHD;Terres en fête;;;;;;;;;;;
"3";"conventionnel";"EARL";"FAUX";"FAUX";"FAUX";"FAUX";"FAUX";"";"Domgrange";"Amasis Epiphane";"29/06/1986";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"29/06/2016";"29/06/2016";"admin";"";"";"";"";;;;;;;;;;;;;;;;;"personne";"[C] Caprin";"";"[C] Fourrage, [C] autre(accueil gite)";"22.0000";"0.0000";"23.00";"0.00";"";"";""
"6";"bio";"Coopérative";"FAUX";"FAUX";"FAUX";"FAUX";"FAUX";"";"Laibrave";"Teti Kasaros, Orilien vrec";"29/06/1991";"";"";"";"ABANCOURT";"59265";"59001";"ABANCOURT (59265)";"Cambrai";"Artois-Cambrésis";"";"VRAI";"";"";"";"";"";"29/06/2016";"29/06/2016";"admin";"";"";"";"";;;;;;;;;;;;;;;;;"tous";"[B] Bovin lait";"[B] Bovin lait";"[B] Bovin viande, [B] Fourrage";"8.0000";"8.0000";"";"";"";"";"01/04/2015"
"4";"conventionnel";"GAEC";"FAUX";"FAUX";"FAUX";"FAUX";"FAUX";"";"Marfer";"Geraint Burdigala, Anya Icosium";"19/03/1968";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"29/06/2016";"29/06/2016";"admin";"";"";"";"";;;;;;;;;;;;;;;;;"adherents";"[C] Légume plein champ";"";"";"60.0000";"10.0000";"";"";"Adhésion[2013] du 04/01/2014 de 20.00 EUR de Marfer";"06/01/2014";""

1 ID Statut bio Forme juridique agriculteur collecteur transformateur com. gros com. detail autre Désignation ou personne Personne set date de naissance N. Siret statut adresse ville code postal num. INSEE commune arrondissement territoire agence eau enjeu eau téléphone fixe téléphone mobile fax courriel URL du site web date de saisie de l'enregistrement date de dernière modification des informations dernière modification par origine du contact Année du premier contact Mois du premier contact commentaire étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes étiquettes publication sur l'annuaire du site Activité principale Activité principale bio Activité(s) annexe(s) Assolement total Assolement total bio SAU à enjeu eau SAU en biologique à enjeu eau Première adhésion date de dernière adhésion date de première conversion
2 A suivre Amap A voir Asuivre AMAP Avoir BN papier BleueDuNord BN électronique BnElectronique Bleue du Nord BnPapier Collectivité Com' OC OPA PA PRESSE Projet 2015 Projet 2016 RHD Terres en fête
3 3 conventionnel EARL FAUX FAUX FAUX FAUX FAUX Domgrange Amasis Epiphane 29/06/1986 29/06/2016 29/06/2016 admin personne [C] Caprin [C] Fourrage, [C] autre(accueil gite) 22.0000 0.0000 23.00 0.00
4 6 bio Coopérative FAUX FAUX FAUX FAUX FAUX Laibrave Teti Kasaros, Orilien vrec 29/06/1991 ABANCOURT 59265 59001 ABANCOURT (59265) Cambrai Artois-Cambrésis VRAI 29/06/2016 29/06/2016 admin tous [B] Bovin lait [B] Bovin lait [B] Bovin viande, [B] Fourrage 8.0000 8.0000 01/04/2015
5 4 conventionnel GAEC FAUX FAUX FAUX FAUX FAUX Marfer Geraint Burdigala, Anya Icosium 19/03/1968 29/06/2016 29/06/2016 admin adherents [C] Légume plein champ 60.0000 10.0000 Adhésion[2013] du 04/01/2014 de 20.00 EUR de Marfer 06/01/2014

Voir le fichier

@ -353,7 +353,7 @@
"model": "references.etiquette",
"fields": {
"description": "",
"designation": "AMAP"
"designation": "Amap"
}
},
{
@ -361,7 +361,7 @@
"model": "references.etiquette",
"fields": {
"description": "Dossier de conversion \u00e0 suivre",
"designation": "A suivre"
"designation": "Asuivre"
}
},
{
@ -369,7 +369,7 @@
"model": "references.etiquette",
"fields": {
"description": "Dossier de conversion \u00e0 contacter",
"designation": "A voir"
"designation": "Avoir"
}
},
{
@ -377,7 +377,7 @@
"model": "references.etiquette",
"fields": {
"description": "Eleveur de vache mixte (lait/viande) de race Bleue du Nord",
"designation": "Bleue du Nord"
"designation": "BleueDuNord"
}
},
{
@ -385,7 +385,7 @@
"model": "references.etiquette",
"fields": {
"description": "Abonn\u00e9 \u00e0 la liste de diffusion Bionouvelles",
"designation": "BN \u00e9lectronique"
"designation": "BnElectronique"
}
},
{
@ -393,7 +393,7 @@
"model": "references.etiquette",
"fields": {
"description": "Abonn\u00e9 \u00e0 la lettre Bionouvelles envoy\u00e9e par courrier",
"designation": "BN papier"
"designation": "BnPapier"
}
},
{

Voir le fichier

@ -2,7 +2,7 @@
With these settings, tests run faster.
"""
from .base import * # noqa
from .base import DATABASES, env
from .base import env
# GENERAL
# ------------------------------------------------------------------------------
@ -27,7 +27,8 @@ CACHES = {
# DATABASE
# ------------------------------------------------------------------------------
DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
# uncomment to force test in sqlite/mem otherwise obey to DJANGO_DATABASE_URL
# DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}
# PASSWORDS
# ------------------------------------------------------------------------------

Voir le fichier

@ -1,6 +1,7 @@
[pytest]
DJANGO_SETTINGS_MODULE = gaby.settings.test
python_files = tests.py test_*.py *_tests.py
addopts = --reuse-db
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango30Warning
markers =