Development #68607
Publik - Development #68182: montée de version django (→ 4.2 LTS)
Préparation django 4 : DeprecationWarnings
0%
Description
Cf tâche parente
Fichiers
Historique
Mis à jour par A. Berriot il y a plus d'un an
- Fichier 0006-fixup-django4-replaced-urls.url-with-url.re_path-equ.patch 0006-fixup-django4-replaced-urls.url-with-url.re_path-equ.patch ajouté
- Fichier 0005-django4-access-request-headers-through-request.heade.patch 0005-django4-access-request-headers-through-request.heade.patch ajouté
- Fichier 0002-django4-replaced-force_text-with-equivalent-force_st.patch 0002-django4-replaced-force_text-with-equivalent-force_st.patch ajouté
- Fichier 0001-django4-replaced-ugettext-calls-with-corresponding-g.patch 0001-django4-replaced-ugettext-calls-with-corresponding-g.patch ajouté
- Fichier 0003-django4-replaced-deprecated-request.is_ajax-call-686.patch 0003-django4-replaced-deprecated-request.is_ajax-call-686.patch ajouté
- Fichier 0004-django4-replaced-urls.url-with-url.re_path-equivalen.patch 0004-django4-replaced-urls.url-with-url.re_path-equivalen.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Paul Marillonnet il y a plus d'un an
Une première relecture :
0003 : juste question de forme, j’aurais mis l’utilitaire is_ajax dans authentic2.utils.misc plutôt que de faire un fichier à part juste pour ça.
0005 : là je vois encore des accès aux entêtes http via request.META, notamment
src/authentic2/cbv.py:72: next_url = request.META.get('HTTP_REFERER') or self.next_url_default src/authentic2/decorators.py:148: origin = request.META.get('HTTP_REFERER') src/authentic2/decorators.py:154: origin = request.META.get('HTTP_ORIGIN') src/authentic2/log_filters.py:33: if not hasattr(request, 'META'): src/authentic2/log_filters.py:42: record.ip = request.META.get('REMOTE_ADDR', self.DEFAULT_IP) src/authentic2/middleware.py:45: ip = request.META.get('REMOTE_ADDR', None) src/authentic2_idp_cas/views.py:467: referrer = request.META['HTTP_REFERER'] src/authentic2/middleware.py:210: if 'HTTP_X_FORWARDED_FOR' in request.META: src/authentic2/middleware.py:211: request.META['REMOTE_ADDR'] = request.META['HTTP_X_FORWARDED_FOR'].split(",")[0].strip() src/authentic2/saml/common.py:67: and 'CONTENT_TYPE' in request.META src/authentic2/saml/common.py:68: and 'text/xml' in request.META['CONTENT_TYPE'] src/authentic2/saml/common.py:513: referer = request.META.get('HTTP_REFERER') src/authentic2/utils/evaluate.py:325: ctx['remote_addr'] = request.META.get('REMOTE_ADDR') src/authentic2_idp_oidc/views.py:538: authorization = request.META['HTTP_AUTHORIZATION'].split() src/authentic2_idp_oidc/views.py:818: if 'HTTP_AUTHORIZATION' not in request.META: src/authentic2_idp_oidc/views.py:820: authorization = request.META['HTTP_AUTHORIZATION'].split()
et j’ai pas compris pourquoi ils ne lèvent pas de warning. Et, note pour mémoire, un ou deux autres endroits qui sans doute ne lèvent pas de warning et où il faudra plus qu’un sed pour que ce soit compatible django 4 :
- la classe authentic2.middlewares.RequestIdMiddleware où il faut être sûr que ce qu’on a dans la setting REQUEST_ID_HEADER est compatible avec les entrées des request.headers.
- la classe authentic2.utils.evaluate.HTTPHeaders où la logique de recherche des entêtes dans request.META n’est pas compatible django 4.
0006 : ne pas oublier de fixup dans 0004.
––––
Là dans la sortie pytest je vois seulement un DeprecationWarning et deux RemovedInDjango40Warning restants. Peut-être qu’on pourrait les traiter aussi et mettre un bout de script dans les tests pour tester qu’on en introduit pas de nouveau à l’avenir ?
C’est peut-être à traiter ailleurs qu’ici. Ici dans ce ticket tu parles d’une tâche parente, c’est le ticket chapeau Publik, c’est ça ?
Mis à jour par A. Berriot il y a plus d'un an
- Statut changé de Solution proposée à Nouveau
Conflits de partout et de nouveaux tests qui crashent, je reprendrai from scratch une autre fois.