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

Retire les usages d'une méthode obsolète de Factory Boy #6541

Merged

Conversation

Arnaud-D
Copy link
Contributor

@Arnaud-D Arnaud-D commented Oct 9, 2023

Dans le cadre de la préparation pour Django 4, j'analyse les logs d'obsoléscence à la recherche de DeprecationWarning et autres choses du genre. Un des problèmes est qu'une méthode remplit plus 10000 lignes de logs (plus de la moitié), ce qui complique le reste.

Cette méthode est une de Factory Boy : _after_postgeneration.

Cette PR :

  • remplace _after_postgeneration par une méthode custom
  • conserve le comportement important pour notre code
  • anticipe le prochain changement de version majeur (il n'y aura pas ça à faire)
  • facilite la lecture des logs d'obsolescence en évitant plus de 10,000 lignes liées à cette méthode

Contrôle qualité

Comme c'est une méthode utilisée seulement dans les tests, la CI devrait suffire.

@Arnaud-D Arnaud-D added C-Back Concerne le back-end Django hacktoberfest-accepted Pull request approuvée pour le Hacktoberfest labels Oct 9, 2023
@coveralls
Copy link

coveralls commented Oct 9, 2023

Coverage Status

coverage: 88.57%. remained the same when pulling ea3200c on Arnaud-D:resout-obsolescence-factoryboy into 7d14f2a on zestedesavoir:dev.

@philippemilink
Copy link
Member

Comment est-ce que tu actives les DeprecationWarning ? J'essaie de reproduire et comprendre le problème que tu rencontres.

@Arnaud-D
Copy link
Contributor Author

Arnaud-D commented Oct 9, 2023

Oui, j'ai oublié de préciser. C'est la sortie de cette commande qui m'aide à inspecter les avertissements :

python -Wa manage.py test 2> log_err.txt 1> log_std.txt

On passe tous les tests avec un paramètre pour avoir tous les warnings et je transfère le tout vers un fichier pour lire ça tranquillement ensuite.

En regardant la doc, je vois qu'on peut faire moins de warning avec quelque chose du genre :

python -Wd manage.py test 2> log_err.txt 1> log_std.txt

mais ça ne change rien au fait que ce que je change dans cette PR soit obsolète.

Copy link
Member

@philippemilink philippemilink left a comment

Choose a reason for hiding this comment

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

Une petite reformulation du commentaire et c'est bon.

zds/member/tests/factories.py Outdated Show resolved Hide resolved
@Arnaud-D Arnaud-D force-pushed the resout-obsolescence-factoryboy branch from 9925496 to 288bd7e Compare October 12, 2023 20:21
* remplace _after_postgeneration par une méthode custom
* conserve le comportement important pour notre code
* anticipe le prochain changement de version majeur
* facilite la lecture des logs d'obsolescence en évitant plus de 10,000 lignes liées à cette méthode
@Arnaud-D Arnaud-D force-pushed the resout-obsolescence-factoryboy branch from 288bd7e to ea3200c Compare October 13, 2023 06:09
Copy link
Member

@philippemilink philippemilink left a comment

Choose a reason for hiding this comment

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

QA OK ✔️

@philippemilink philippemilink merged commit 8e13b69 into zestedesavoir:dev Oct 13, 2023
8 checks passed
@Arnaud-D Arnaud-D deleted the resout-obsolescence-factoryboy branch October 15, 2023 13:15
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 hacktoberfest-accepted Pull request approuvée pour le Hacktoberfest
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants