Projet

Général

Profil

Development #51267

ne pas avoir les erreurs des tests dans les logs système

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
18 février 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

prometheus remonte une erreur sur le serveur jenkins, et c'est :

 $ ssh jenkins.entrouvert.org sudo journalctl --priority=3 --since=-15min
-- Logs begin at Wed 2021-02-17 01:17:05 CET, end at Thu 2021-02-18 18:13:27 CET. --
fév 18 18:04:52 jenkins py.test[8188]: authentic2-multitenant ERROR authentic.example.net - - - error in provisionning thread
                                        Traceback (most recent call last):
                                          File "/tmp/tox-jenkins/hobo/py3-django111-authentic/lib/python3.7/site-packages/django/db/backends/utils.py", line 64, in execute
                                            return self.cursor.execute(sql, params)

Fichiers

Révisions associées

Révision 0f8fe282 (diff)
Ajouté par Benjamin Dauvergne il y a presque 3 ans

tests: disable syslog logging handler (#51267)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

  • Projet changé de Admin système à Hobo

C'est les tests hobo qu'il faut modifier.

#2

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

  • Assigné à mis à Benjamin Dauvergne
#3

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

#4

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

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

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

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

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

Rebasé.

#7

Mis à jour par Nicolas Roche il y a presque 3 ans

(je ne pige pas, je n'arrive pas à reproduire en local, je veux dire que je n'arrive même plus à générer un warning dans les logs via le code comme par exemple pour imiter un $ logger coucou en shell)

#8

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

Nicolas Roche a écrit :

(je ne pige pas, je n'arrive pas à reproduire en local, je veux dire que je n'arrive même plus à générer un warning dans les logs via le code comme par exemple pour imiter un $ logger coucou en shell)

Ça ne concerne que test_multitenant et test_multipublik à cause de :

bdauvergne@revestel:~/wd/eo/hobo$ git grep -B2 debian_config_common tests*
tests_multipublik/settings.py-with patch.object(builtins, 'open', mock_open(read_data=b'xxx')):
tests_multipublik/settings.py-    exec(open_backup(os.path.join(os.path.dirname(__file__),
tests_multipublik/settings.py:            '../debian/debian_config_common.py')).read())
--
tests_multitenant/settings.py-with patch.object(builtins, 'open', mock_open(read_data=b'xxx')):
tests_multitenant/settings.py-    exec(open_backup(os.path.join(os.path.dirname(__file__),
tests_multitenant/settings.py:            '../debian/debian_config_common.py')).read())

Tu as vérifié dans ces environnements ?

#9

Mis à jour par Nicolas Roche il y a presque 3 ans

Tu as vérifié dans ces environnements ?

Non, je me suis mis dans l'environnement par défaut.
En fait, pour valider je cherche à d'abord à reproduire le warning généré par les tests :

hobo/agent/authentic2/provisionning.py: logger.exception(u'error in provisionning thread')

ex:

$ git diff -U1
diff --git a/tests/test_home_views.py b/tests/test_home_views.py
index 29adc5e..590659e 100644
--- a/tests/test_home_views.py
+++ b/tests/test_home_views.py
@@ -25,2 +25,6 @@ def test_home_view(app, admin_user):

+    import logging
+    logger = logging.getLogger(__name__)
+    logger.exception('coucou')
+

puis

$ tox -e py3-django22-coverage-hobo -- tests/test_home_views.py::test_home_view

mais ça n'affiche rien nul part.
Est-ce que tu peux me donner un peu plus de contexte, stp ?

#10

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

Ça n'arrive pas dans l'environnement hobo parce que debian_config_common n'est pas chargé, je ne pointe pas les autre environnements pour rien :) Lance juste les environnements que j'ai pointé, tu verras des choses dans journalctl ou syslog.

#11

Mis à jour par Nicolas Roche il y a presque 3 ans

Pas mieux, je dois encore rater quelque-chose.

$ git diff -U1 tests_multitenant/test_logger.py
diff --git a/tests_multitenant/test_logger.py b/tests_multitenant/test_logger.py
index fbc3780..9f21195 100644
--- a/tests_multitenant/test_logger.py
+++ b/tests_multitenant/test_logger.py
@@ -114 +114,4 @@ def test_clamp_log_level(caplog):
     assert caplog.records[-1].levelname == 'WARNING'
+
+    logger = logging.getLogger(__name__)
+    logger.exception('coucou')

$ tox -e py3-django22-coverage-multitenant -- tests_multitenant/test_logger.py::test_clamp_log_level
#12

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Assigné à changé de Benjamin Dauvergne à Nicolas Roche

Je dis des bêtises, donc à reprendre la description du ticket c'est dans les tests authentic, py3-django111-authentic.

#13

Mis à jour par Nicolas Roche il y a presque 3 ans

Merci je reproduis.
Cependant j'ai l'impression que le patch ne retirera pas l'erreur :

$ git diff -U1
diff --git a/tests_authentic/test_provisionning.py b/tests_authentic/test_provisionning.py
index f817743..db27c5c 100644
--- a/tests_authentic/test_provisionning.py
+++ b/tests_authentic/test_provisionning.py
@@ -741 +741,7 @@ def test_provisionning_api(transactional_db, app_factory, tenant, settings, capl
         assert resp.json['leftover_audience']
+
+def test_nico():
+    import logging
+    logger = logging.getLogger(__name__)
+    logger.exception('coucou')

$ sudo journalctl -f
   $ tox -e py3-django111-authentic -- tests_authentic/test_provisionning.py

mai 31 15:51:25 nico py.test[1096477]: authentic2-multitenant ERROR - - - - coucou
mai 31 15:50:24 nico py.test[1095714]: authentic2-multitenant ERROR authentic.example.net 127.0.0.1 - r:7FB00A5C1790 error provisionning to http://other.example.net/metadata/ ()
mai 31 15:50:24 nico py.test[1095714]: authentic2-multitenant ERROR authentic.example.net 127.0.0.1 - r:7FB00A5C1790 error provisionning to http://more.example.net/metadata/ ()

Peut-être quelque-chose en plus comme ça ?

$ git diff -U1 debian/debian_config_common.py
diff --git a/debian/debian_config_common.py b/debian/debian_config_common.py
index 1b33208..7174c58 100644
--- a/debian/debian_config_common.py
+++ b/debian/debian_config_common.py
@@ -184,3 +184,3 @@ LOGGING = {
         '': {
-            'level': 'DEBUG',
+            'level': 'CRITICAL',
             'filters': ['request_context'],

#14

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

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

Nicolas Roche a écrit :

Merci je reproduis.
Cependant j'ai l'impression que le patch ne retirera pas l'erreur :
[...]

Peut-être quelque-chose en plus comme ça ?
[...]

Ah ben oui clairement ça ne marche pas :)

#15

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Assigné à changé de Nicolas Roche à Benjamin Dauvergne
#16

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

Comme cela ça marche (erreur dans le test os.environ(...) == 1).

#17

Mis à jour par Nicolas Roche il y a presque 3 ans

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

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 0f8fe2827435e72a46237113541bf212f05c675c
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Feb 19 08:47:45 2021 +0100

    tests: disable syslog logging handler (#51267)
#19

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

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

Formats disponibles : Atom PDF