Development #40200
usage du validateur de l'adresse mail
0%
Description
validators.py::email_validator
n'est utilisé nulle part.
Il faudrait s'en servir sur la page de création du compte.
Fichiers
Demandes liées
Révisions associées
misc: use email domain validation (#40200)
Historique
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Nouveau à En cours
- Assigné à
Valentin Deniaudsupprimé
Pour être exact il est « utilisé » à un endroit, dans custom_user/models.py, sauf qu'il est écrit EmailValidator à la place de EmailValidator(), donc ça fait longtemps que ça ne marche plus.
Je passe partout où il y a un EmailField pour ajouter la validation, sauf dans api_views.py parce que je ne sais pas si on en veut ici. Je ne vais pas ajouter les tests pour tous les formulaires, j'en choisis un arbitrairement.
Pour paraphraser une citation affichée sur le mur, le problème maintenant c'est que ça marche : on fait une vraie requête DNS à chaque fois qu'on trifouille l'email d'un utilisateur. Ça fait planter certains tests qui utilisent des domaines fantaisistes, mais c'est surtout inutile et je ne pense pas qu'on devrait faire de vraies requêtes vers l'extérieur dans des tests de toute façon. Donc mon plan c'est de désactiver la vérification dans les tests.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
Je pense comme toi qu'on devrait l'enlever du modèle et le laisser uniquement sur les formulaires où on le souhaite.
Concernant les tests, je pense que le plus simple ce serait de faire un mock partiel :
# conftest.py import authentic2.validators @pytest.fixture def email_validator(monkeypatch): whitelist = [] __call__ = authentic2.validators.email_validator.__call__ def new_call(value): if value in whitelist: return True return __call__(value) monkeypatch.setattr(authentic2.validators.email_validator, '__call__', new_call) return whitelist ... def test_whatever(email_validator): email_validator.append('john.doe@example.net')
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Fichier 0001-custom_user-remove-broken-email-validation-40200.patch 0001-custom_user-remove-broken-email-validation-40200.patch ajouté
- Fichier 0002-misc-use-email-domain-validation-40200.patch 0002-misc-use-email-domain-validation-40200.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Benjamin Dauvergne a écrit :
Concernant les tests, je pense que le plus simple ce serait de faire un mock partiel :
[...]
Le mieux je ne sais pas, le plus simple sûrement pas. Mon plus simple c'est A2_VALIDATE_EMAIL_DOMAIN = False
dans les settings et activation/mock explicite aux 2 endroits où c'est ce qu'on veut tester.
Mis à jour par Paul Marillonnet il y a environ 4 ans
(Il manque une migration liée à la modif de modèle dans 0001)
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
J'aurai préféré que la validation ne soit pas désactivée partout mais soit.
PS: reste juste la migration.
Mis à jour par Valentin Deniaud il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 56f4868afbcd27f1e790c70b39a7c305c1bf9a52 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Thu Mar 5 15:41:53 2020 +0100 misc: use email domain validation (#40200) commit 41d91e357fca524f37d3a28e9063fc9b366ef712 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Thu Mar 5 15:40:01 2020 +0100 custom_user: remove broken email validation (#40200)
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Benjamin Dauvergne il y a environ 2 ans
- Lié à Bug #29880: Limiter la possibilité d'entrer des emails invalides ajouté
custom_user: remove broken email validation (#40200)