Search code examples
djangodjango-testingdjango-tests

Django test logs Bad or Unauthorized requests


I recently upgraded from django 1.11 to django 3.0.

Currently, when i launch python manage.py test, django logs any bad or unauthorized requests from my tests, the fact is : it did not log such while on 1.11

Exemple :

.2021-01-06 18:04:20,374 Unauthorized: /api/image/create
..2021-01-06 18:04:20,426 Bad Request: /api/image/transfer/create
.2021-01-06 18:04:20,436 Bad Request: /api/image/transfer/create

...

----------------------------------------------------------------------
Ran 3 tests in 0.008s

OK
Preserving test database for alias 'default'...

Did i miss something while reading django changelog ?

I'd like some light because i do not want to make a distribution without knowing if it's only warning or real error.


Solution

  • Since django 2.1, they added logging to error 4xx and 5xx :

    https://github.com/django/django/commit/10b44e45256ddda4258ae032b8d4725a3e3284e6

    Just do before launching test :

    import logging
    logger = logging.getLogger('django.request')
    logger.setLevel(logging.ERROR)
    

    or create a decorator for each test you want to silence.