Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bug on no tag #3875

Merged
merged 9 commits into from Oct 22, 2016
Merged

Fix bug on no tag #3875

merged 9 commits into from Oct 22, 2016

Conversation

artragis
Copy link
Member

@artragis artragis commented Oct 19, 2016

Q R
Type de modification correction de bug
Ticket(s) (issue(s)) concerné(s) (j'ai pas encore créé, c'est une alerte sentry)

QA

  • créez un tuto
  • , j'ai utilisé la console du navigateur pour modifier la valeur du champ contenant les tags (ce qui outrepasse le maxlength) et mettre un tag plus long que prévu, ce qui a entraîné une erreur 500 en validant

  • vérifiez que ça bug pas et que le tuto est créé sans ses tags.

@coveralls
Copy link

coveralls commented Oct 19, 2016

Coverage Status

Coverage remained the same at 87.615% when pulling 85e8e25 on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@pierre-24
Copy link
Member

Je crois que ça ira :

screenshot from 2016-10-19 22 32 14

@GerardPaligot
Copy link
Member

Je voudrais être chiant, je dirais qu'il manque un TU. (:

@pierre-24
Copy link
Member

Je suis d'accord ;)

@vhf
Copy link
Contributor

vhf commented Oct 19, 2016

Merci @artragis . Outre le test manquant, j'ai quelques questions :

  • Est-ce que ce bug a été introduit par cette release ou est-il antérieur ?
  • Ne vaudrait-il pas mieux modifier cette méthode pour y faire cette vérification ?*
  • S'il n'y a que ce bug mineur dans la RC4, est-ce que vous seriez contre faire cette PR sur dev pour s'éviter une 5e RC ?

* Un truc dans ce goût-là :

+        if not raw_string:
+            return []
         return TagValidator.validate_string_list(raw_string.split(","))

@artragis
Copy link
Member Author

Etant donné que je l'ai introduit, j'ai la casi certitude que oui c'est
du pur v20.

Le 19/10/2016 à 23:32, victor felder a écrit :

Merci @artragis https://github.com/artragis . Outre le test
manquant, j'ai quelques questions :

  • Est-ce que ce bug a été introduit par cette release ou est-il
    antérieur ?
  • Ne vaudrait-il pas mieux modifier cette ligne
    artragis@d8c3425#diff-ec82b3a079c8b6115716953cfd70ad93R70
    pour y mettre …|(raw_string=''):| ?
  • S'il n'y a que ce bug mineur dans la RC4, est-ce que vous seriez
    contre faire cette PR sur |dev| pour s'éviter une 5e RC ?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#3875 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABc_xa-lTVg_KylznqtLNYaS0rnFz5zdks5q1ox_gaJpZM4KbZo_.

@vhf vhf added this to the Version 20 milestone Oct 20, 2016
@coveralls
Copy link

Coverage Status

Coverage decreased (-34.9%) to 52.709% when pulling c719940 on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@coveralls
Copy link

coveralls commented Oct 20, 2016

Coverage Status

Coverage decreased (-0.007%) to 87.608% when pulling 3db2a62 on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@vhf
Copy link
Contributor

vhf commented Oct 20, 2016

Je pense qu'il vaut la peine d'en profiter pour retravailler un peu ce validateur de tag et la pertinence des messages qu'il retourne.

Exemple de logique ici. Comme ça on dit à l'utilisateur directement quels tags sont trop longs, et on lui dit aussi quand un ou des tags, et le cas échéant le ou lesquels, contiennent des caractères pas autorisés. C'est mieux que de les virer sans avertir.

@pierre-24
Copy link
Member

Je suis d'accord. Après, faut voir si on veut ça pour le bugfix ou pour plus tard

@vhf
Copy link
Contributor

vhf commented Oct 20, 2016

Je pense que vu que le gros du travail est fait et qu'il manque juste l'intégration un peu plus propre du brouillon dont je donne le lien, y a pas de raison de pas faire passer le tout ici.

Copy link
Contributor

@vhf vhf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • intégrer la validation utf8 au validateur de tags.

@@ -265,6 +265,7 @@ def clean(self):
self._errors['image'] = self.error_class(
[_(u'Votre logo est trop lourd, la limite autorisée est de {} Ko')
.format(settings.ZDS_APP['gallery']['image_max_size'] / 1024)])
# because tags are not mandatory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commentaire inutile.

@@ -58,3 +59,9 @@ def insert_duplicated_tags(tags):
self.assertIn('azerty', all_slugs)
self.assertIn('qwerty', all_slugs)
self.assertIn('another-tag', all_slugs)

def test_validator(self):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce test n'est pas bon. Une implémentation évidente de la méthode testée ici serait def validate_raw_string(): return True

@artragis
Copy link
Member Author

utf8mb4 validé + refonte du validateur pour que ça soit beau et pythonique.

@vhf
Copy link
Contributor

vhf commented Oct 21, 2016

Merci @artragis ! @pierre-24 quand t'es motiv, QA ?

@GerardPaligot tu vois d'autres trucs à régler pour la v20 ou je peux RC ?

@pierre-24
Copy link
Member

pierre-24 commented Oct 21, 2016

Tout dépend à quel point tu considère #3842 comme bloquant :)

(je vais QA)

@pierre-24
Copy link
Member

QA: NOK!

  • Si je met pour tags "test,😄", j'obtient "object of type 'function' has no len()" dans
    "zds/utils/forms.py in validate_length" (à la ligne 85). Ça, c'est parce que _ n'est pas défini dans la fonction.

  • Mettons que je mette raw_string à la place de ce fameux _, eh bien j'ai les deux erreurs, dont la première 2 fois:
    screenshot from 2016-10-21 14 38 29

    En même temps, la ligne 93 fait tout les tests sur tout les tags. Donc forcément, on se tape toutes les erreurs à la suite. Si c'est ce que tu recherches, alors précise quel tag est fautif dans l'erreur :)

  • Et en fait, la logique de la ligne if len(_) <= Tag._meta.get_field("title").max_length: est à l'envers, ça devrait être >= (d'où les erreurs "le tag est trop long").

  • Sinon, j'ai toujours bien "Assurez-vous que cette valeur comporte au plus 64 caractères (actuellement 599).", donc ça, c'est bon !

@vhf
Copy link
Contributor

vhf commented Oct 21, 2016

Je comprends pas pourquoi travis est pas passé par ici.

@vhf vhf added S-BUG Corrige un problème C-Back Concerne le back-end Django S-Régression Corrige un problème sur un composant qui fonctionnait auparavant and removed S-BUG Corrige un problème labels Oct 21, 2016
@pierre-24
Copy link
Member

pierre-24 commented Oct 21, 2016

Parce qu'il semblerai qu'internet soit cassé (et qu'il suffise que je dise ça pour que Travis se réveille).

@artragis
Copy link
Member Author

logically fixed


def validate_raw_string(self, raw_string):
if raw_string is None or not isinstance(raw_string, basestring):
return self.validate_string_list([])
return self.validate_string_list(raw_string.split(","))

def validate_length(self, raw_string):
if len(_) <= Tag._meta.get_field("title").max_length:
self.errors.append(_(u"Le tag est trop long"))
if len(raw_string) <= Tag._meta.get_field("title").max_length:
Copy link
Member

@pierre-24 pierre-24 Oct 21, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T'as oublié d'inverser la condition ;) (du coup les tests sont tout cassés)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... Et si les erreurs doivent ce suivre, il faudrait les faire finir par . (avec un espace après le point)

@coveralls
Copy link

Coverage Status

Coverage decreased (-34.9%) to 52.756% when pulling b798fa0 on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@coveralls
Copy link

Coverage Status

Coverage decreased (-34.9%) to 52.756% when pulling 4e4241a on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@coveralls
Copy link

Coverage Status

Coverage decreased (-34.9%) to 52.756% when pulling 9f6f5d1 on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

to get all internationalized error.
"""
if raw_string is None or not isinstance(raw_string, basestring):
return self.validate_string_list([])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi pas return True ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question d'évolutivité : si demain pour une raison aussi saugrenue soit-elle on décide qu'une liste vide est invalide ça retournera false.
De plus c'est juste ici de la sémantique "si tu mets None ou autre chose qu'un string, on le considère comme un string vide".


def test_validator_with_utf8mb4(self):

raw_string = u"☢☢☢☢☢☢,bla"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remplace par 🐙. Le premier est pas utf8mb4, le second l'est. On peut pas vraiment éviter ça malheureusement.

@coveralls
Copy link

coveralls commented Oct 22, 2016

Coverage Status

Coverage decreased (-0.008%) to 87.607% when pulling f181add on artragis:patch-11 into 123e744 on zestedesavoir:release-v20.

@pierre-24
Copy link
Member

QA OK. On est parti :)

@artragis
Copy link
Member Author

artragis commented Oct 25, 2016

il faudra donc attendre demain que je m'y mette dans des bonnes conditions.

Le 20/10/2016 à 21:00, vhf a écrit :

Je pense qu'il vaut la peine d'en profiter pour retravailler un peu ce
validateur de tag et la pertinence des messages qu'il retourne.

Exemple de logique ici
vhf@34dbd97.
Comme ça on dit à l'utilisateur directement quels tags sont trop
longs, et on lui dit aussi quand un ou des tags, et le cas échéant le
ou lesquels, contiennent des caractères pas autorisés. C'est mieux que
de les virer sans avertir.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#3875 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABc_xSyCuknXpwtbZFFVx86W0Q99CntKks5q17pqgaJpZM4KbZo_.

@vhf
Copy link
Contributor

vhf commented Oct 25, 2016

Je suis pas sûr de savoir de quoi tu parles @artragis, mais si c'est à propos de #3895 rien d'urgent, a priori ce sera pour la v21.

@artragis
Copy link
Member Author

hum, on appelle ça le cache de thunderbird qui finit par se réveiller dès que la connexion est stable il semblerait. Car ce message je l'ai envoyé non pas il y a cinq minutes mais il y a plusieurs jours.

Les problèmes récents de DNS sont peut être en cause.

vhf added a commit that referenced this pull request Oct 26, 2016
Problème apparu suite au merge de v20 dans dev à cause de cet état :

* #3875 change les validateurs dans v20
* bb4f285 utilise les vieux validateurs dans dev
@artragis artragis deleted the patch-11 branch April 13, 2017 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django S-Régression Corrige un problème sur un composant qui fonctionnait auparavant
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants