Project

General

Profile

Development #40575

Tourner les tests localement

Added by Nicolas Roche 4 months ago. Updated 2 months ago.

Status:
En cours
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
09 Mar 2020
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

2 tests sur les vues ne passent pas en local (sur mon installation publik-devinst), parce que la chaîne testée est rendue en français.

$ tox -- tests/test_views.py::test_import_visualization --pdb

(ça se corrige facilement en ajoutant une traduction des chaînes testées)

Pour faire comme dans les autres briques je pensais forcer les tests en anglais, mais on voit juste au dessus que c'est l'inverse pour la base...

diff --git a/tests/settings.py b/tests/settings.py
 BIJOE_CACHE = False
 BIJOE_INIT_SQL = [
     'SET lc_time = \'fr_FR.UTF-8\'',
 ]
 PAGE_LENGTH = 0
+LANGUAGE_CODE = 'en'

0001-tests-set-english-language-on-views-tests-40575.patch View (2.14 KB) Nicolas Roche, 09 Mar 2020 09:05 PM

0001-tests-run-in-English-instead-of-French-40575.patch View (433 KB) Valentin Deniaud, 10 Mar 2020 11:41 AM

Associated revisions

Revision dad9c757 (diff)
Added by Nicolas Roche 4 months ago

tests: set english language on views tests (#40575)

History

#1 Updated by Valentin Deniaud 4 months ago

Ça a été ajouté récemment dans #38462. Le problème ici c'est que les tests passaient en local, jusqu'à ce que tag puis traductions et badaboum. Pour l'anecdote ça montre que jenkins a postgres en français et sa locale en anglais, hum hum.
Bref il faut faire en sorte que tout soit en anglais une bonne fois pour toutes IMO.

#2 Updated by Nicolas Roche 4 months ago

(ça se corrige facilement en ajoutant une traduction des chaînes testées)

j'ai parlé trop vite :

(Pdb) type(_('No visualization created.'))   
<type 'unicode'>
(Pdb) _('No visualization created.')         
u'Aucune visualisation cr\xe9\xe9e.'

#3 Updated by Nicolas Roche 4 months ago

Patch minimaliste, si dans un premier temps, on continue avec la base en français,
mais que l'on ne souhaites pas pour autant traduire les résultats des chaînes testées (ce que je n'ai pas réussit à faire).

#4 Updated by Valentin Deniaud 4 months ago

Ma copie, à grands coups de sed on s'en sort pour tout mettre en anglais.

#5 Updated by Nicolas Roche 4 months ago

Juste en passant, après avoir passé la journée à faire tourner les tests avec le patch de Valentin, je confirme qu'il fait bien l'affaire.

#6 Updated by Benjamin Dauvergne 4 months ago

J'ai rien compris ; tout l'intérêt de la fixture c'est d'avoir justement les mois en français, pourquoi on l'a perdu ici malgré le BIJOE_INIT_SQL ? Ça ne vient pas de Django c'est généré directement par une expression SQL il me semble.

PS: ma question en plus direct, pourquoi la piste évoquée dans la description du ticket (ajouter LANGUAGE_CODE dans tests/settings.py ne marche pas ?)

#7 Updated by Nicolas Roche 4 months ago

pourquoi ajouter LANGUAGE_CODE dans tests/settings.py ne marche pas ?

En fait c'était rouge partout ailleurs ensuite, donc j'ai pas cherché à comprendre :

tests/test_bijoe_schemas.py .                                                                                                                    
tests/test_hobo_deploy.py .                                                                                                                                          
tests/test_import_export.py .                                                                                                                                        
tests/test_relative_time.py .                                                                                                                                         
tests/test_schema1.py ..FFFF....FF..                                                                                                                                  
tests/test_schema2.py .........F.F.......F....F......F.F.................F.............................................F........F.........................F........F.
..............F......F.......F...FF...F..F.......F....F...................F...........................F.............................FFFF.....F.......F...............
............F...F.F.....F............................F.....F.F.........F....................F...F.........................                                            
tests/test_schemas.py .                                                                                                                                               
tests/test_views.py .........                                                                                                                                         

Voici la première erreur que j'ai :

>       assert get_table(response) == [['Boolean', 'Oui', 'Non'], ['number of rows', '8', '9']]
E       AssertionError: assert [['Boolean', ...s', '8', '9']] == [['Boolean', '...s', '8', '9']]
E         At index 0 diff: ['Boolean', 'Yes', 'No'] != ['Boolean', 'Oui', 'Non']

#8 Updated by Frédéric Péters 4 months ago

Je n'ai pas regardé attentivement ce ticket mais en différence d'environnements, je me dis qu'il y a un truc à avoir les fichiers .po compilés, qui fait que la trad va être trouvée/utilisée, ce qui peut faire qu'en local Nicolas récupère une version traduite des chaines, que ça clashe alors avec ce qui est attendu dans les tests.

Parce que différentes combinaisons possibles, postgresql en anglais ou en français, ça jouera sur les noms des mois; trads compilées ou pas, ça jouera sur les chaines de bijoe.

#9 Updated by Benjamin Dauvergne 2 months ago

  • Status changed from Solution proposée to En cours

Je mets à en cours parce que ce n'est pas bien clair pour moi qu'il y a un souci.

Also available in: Atom PDF