Projet

Général

Profil

Development #40200

usage du validateur de l'adresse mail

Ajouté par Serghei Mihai il y a environ 4 ans. Mis à jour il y a environ 4 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Authentic 2 - Bug #29880: Limiter la possibilité d'entrer des emails invalidesFermé18 janvier 2019

Actions

Révisions associées

Révision 41d91e35 (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

custom_user: remove broken email validation (#40200)

Révision 56f4868a (diff)
Ajouté par Valentin Deniaud il y a environ 4 ans

misc: use email domain validation (#40200)

Historique

#1

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Assigné à mis à Valentin Deniaud
#2

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Statut changé de Nouveau à En cours
  • Assigné à Valentin Deniaud supprimé

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.

#3

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')
#4

Mis à jour par Valentin Deniaud il y a environ 4 ans

  • Assigné à mis à Valentin Deniaud
#5

Mis à jour par Valentin Deniaud il y a environ 4 ans

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.

#6

Mis à jour par Paul Marillonnet il y a environ 4 ans

(Il manque une migration liée à la modif de modèle dans 0001)

#7

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.

#8

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)
#9

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
#10

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

  • Lié à Bug #29880: Limiter la possibilité d'entrer des emails invalides ajouté

Formats disponibles : Atom PDF