0001-base-do-not-log-errors-in-check-status-45001.patch
passerelle/base/models.py | ||
---|---|---|
10 | 10 |
import sys |
11 | 11 |
import traceback |
12 | 12 |
import uuid |
13 |
from contextlib import contextmanager |
|
13 | 14 | |
14 | 15 |
from django import VERSION |
15 | 16 |
from django.apps import apps |
... | ... | |
482 | 483 |
availability_parameters = self.availability_parameters |
483 | 484 | |
484 | 485 |
try: |
485 |
self.check_status() |
|
486 |
with self.logger.suspend_logging(): |
|
487 |
self.check_status() |
|
486 | 488 |
status = 'up' |
487 | 489 |
message = '' |
488 | 490 |
except NotImplementedError: |
... | ... | |
905 | 907 |
def level(self): |
906 | 908 |
return self._logger.getEffectiveLevel() |
907 | 909 | |
910 |
@contextmanager |
|
911 |
def suspend_logging(self): |
|
912 |
previous_level = self.level |
|
913 |
self._logger.setLevel(logging.CRITICAL) |
|
914 |
try: |
|
915 |
yield |
|
916 |
finally: |
|
917 |
self._logger.setLevel(previous_level) |
|
918 | ||
908 | 919 |
def _log(self, levelname, message, *args, **kwargs): |
909 | 920 |
force = kwargs.pop('force', False) |
910 | 921 |
if self.connector.down() and not force: |
tests/test_misc.py | ||
---|---|---|
1 | 1 |
import datetime |
2 | 2 | |
3 |
import mock |
|
3 | 4 |
import pytest |
4 | 5 |
from django.contrib.contenttypes.models import ContentType |
5 | 6 |
from django.core.files import File |
... | ... | |
9 | 10 |
from django.utils import timezone |
10 | 11 |
from django.utils.six import StringIO |
11 | 12 |
from mock import patch |
13 |
from requests.exceptions import ReadTimeout |
|
12 | 14 |
from test_manager import login |
13 | 15 | |
16 |
from passerelle.apps.base_adresse.models import BaseAdresse |
|
14 | 17 |
from passerelle.apps.clicrdv.models import ClicRdv |
15 | 18 |
from passerelle.apps.opengis.models import OpenGIS |
16 | 19 |
from passerelle.base.models import ResourceLog |
... | ... | |
172 | 175 |
CsvDataSource = apps.get_model(app, 'CsvDataSource') |
173 | 176 |
connector = CsvDataSource.objects.get(pk=pk) |
174 | 177 |
assert connector._dialect_options == data |
178 | ||
179 | ||
180 |
def test_check_status_no_traceback_email(db, settings, email_handler, mailoutbox): |
|
181 |
settings.ADMINS = [('admin', 'admin@example.net')] |
|
182 |
connector = BaseAdresse.objects.create(slug='base-adresse') |
|
183 | ||
184 |
with mock.patch('requests.sessions.HTTPAdapter.send', autospec=True, side_effect=ReadTimeout('timeout')): |
|
185 |
connector.availability() |
|
186 |
assert len(mailoutbox) == 1 |
|
187 |
assert 'is now down' in mailoutbox[0].subject |
|
175 |
- |