05:25 <Mindiell> mdk: ça me va, on met juste la ville
05:25 <Mindiell> (bon, moi perso je suis pour tout féminiser, histoire de ré-équilibrer, mais bon)
05:46 <entwanne> La réunion CD c'est ce soir !
05:55 <Mindiell> Oh mon dieu !
05:55 <Mindiell> entwanne: t'as l'horaire ?
06:00 <Mindiell> Si c'est 18h, il y a des chances que je sois necore dans les transports :o/
06:09 <entwanne> Non on a déplacé à 20h maintenant ☹
06:14 <Mindiell> bon, ben je serai p'tet assez en forme pour participer alors !
07:17 <discord_afpy> <ReiNula> J'ai compris qu'on avait pas désactivé de fonctionnalité pour les messages vocaux sur ce discord. En fait c'est juste limité aux serveurs de moins de 200 personnes (pour l'instant j'imagine).
07:35 <discord_afpy> <asyd> y a que toi @debnet with spaces qui peut changer ça a priori
07:35 <debnet> Je dois changer quoi ?
07:36 <discord_afpy> <asyd> désactiver les messages vocaux (ça me parait une bonne idée)
07:36 <discord_afpy> <ReiNula> Rien, la fonctionnalité des messages vocaux ne s'applique pas ici. On est plus de 200 personnes sur le serveur.
07:40 <discord_afpy> <debnet> Ah bah tout va bien alors.
07:40 <discord_afpy> <asyd> désolé de t'avoir réveillé astrodebnet^Wdebnet
07:41 <discord_afpy> <grewn0uille> J’avais commencé à faire ça pour les meetups lyonnais, my bad. Et je me suis fait exactement la même réflexion hier, que c’était pas ouf du tout. Du coup j’ai changé après coup pour le meetup d’avril de Lyon pour mettre "Sur Lyon − meetup le"
07:41 <debnet> Pas de soucis, mon fils s'en était chargé à ta place.
07:49 <discord_afpy> <ReiNula> Quand je lisais parfois "pour les parisiens", "pour les lyonnais"... Je me demandais 'et pour ceux qui y habitent pas, on est exclu ?" 😄
07:53 <discord_afpy> <grewn0uille> T’as le droit de venir si t’es dans le coin à ce moment là 🙂
07:57 <entwanne> Je pense que ce qu'elle soulève c'est que justement ce n'est pas ce que sous-entend une formule comme « pour les parisien·ne·s »
07:57 <discord_afpy> <ReiNula> C'est pour taquiner, du genre si on habite la ville à côté on est pas admis ? 😄
07:58 <discord_afpy> <ReiNula> Perso, je suis plus partisane de mettre la ville.
07:58 <Mindiell> Pour taquiner, *mais* ça reste pertinent.
07:58 <mdk> la ville y est deja dans le tag
07:59 <Mindiell> donc le "Sur [ville] - le XX/XX/XXX" de grewn0uille me semble idéal.
07:59 <mdk> ca fait toujours doublon avec le tag :P
08:00 <discord_afpy> <ReiNula> J'avais même pas capté qu'il y avait les villes dans les tags.
08:00 <discord_afpy> <ReiNula> Je lis que les gros titres.
08:01 <mdk> Ca date d'il y a a peine un mois le tag
08:01 <mdk> c'est peut etre pour ça aussi qu'on a pris l'habitude d'utiliser les titres
08:01 <mdk> l'avantage du tag c'est de pouvoir filtrer
08:02 <entwanne> le tag apparaît-il sur les messages postés sur twitter/mastodon/irc ?
08:02 <mdk> Ahhhhhhh la bonne question
08:03 <mdk> On ne dirait pas...
08:04 <discord_afpy> <ReiNula> Sur twitter il n'y a que le titre du post qui est visible.
08:05 <mdk> Bon bah vendu pour le phrasé de la présidente
08:09 <debnet> Une bonne chose de faite.
08:35 <misc> est ce qu'il faut préciser "france" un jour ou on a des choses hors de france ?
08:40 <discord_afpy> <ReiNula> Ma pensée serait de spécifier plutôt de spécifier si c'est hors France, mais est-ce que cela signifierait qu'on est trop centré France métropole ?
08:47 <entwanne> En tout cas on est très centrés sur l'Europe de l'ouest donc oui y a pas de confusion quand on utilise Paris ou Bruxelles à se demander si c'est en Europe ou aux USA
08:53 <alain_afpy> Sur Paris — Atelier traduction de la doc de Python - https://discuss.afpy.org/t/sur-paris-atelier-traduction-de-la-doc-de-python/1516
10:04 <mdk> ^ Mieux :)
11:44 <discord_afpy> <Deuchnord> (je précise que par "quelques difficultés à comprendre comment faire un mock", j'entends que je ne sais pas par où commencer 🥲 )
12:08 <entwanne> avec pytest le plus simple est d'utiliser pytest-mock qui introduit la fixture mocker
12:09 <entwanne> cette fixture va te permettre de faire des mocker.patch/patch.object (pour remplacer à la volée un attribut / une méthode) ou mocker.spy (pour surveiller les accès à une méthode/attribut)
12:09 <discord_afpy> <Chadys> Je te conseille d'installer pytest-mock (https://pypi.org/project/pytest-mock/) qui te permet d'avoir l'objet `mocker` en fixture pour pouvoir l'appeler facilement, c'est du sucre syntaxique sur https://docs.python.org/dev/library/unittest.mock.html + ça se charge de nettoyer ce que tu as mocké entre tes tests.
12:09 <entwanne> Y a pas mal d'exemples d'utilisation dans la doc de pytest-mock : https://pytest-mock.readthedocs.io/en/latest/usage.html
12:10 <entwanne> (dont des liens vers les pages de doc python unittest)
12:11 <discord_afpy> <Chadys> comme dit entwanne, spy c'est pratique si tu ne veux pas changer le fonctionnement actuel de ton objet mais juste en surveiller les appels (mais dans ton cas avec un appel à la DB je pense que c'est mieux de mocker pour éviter d'alourdir les tests)
12:13 <discord_afpy> <Deuchnord> Yes, c'est aussi pour éviter d'écrire dans une db alors que j'en ai pas besoin pour un test unitaire qui ne cherche pas à vérifier ça que je voulais mocker et pas juste spy 🙂 merci pour vos réponsses, ça m'aide beaucoup ! 🤗
12:15 <entwanne> Après le plus dur c'est parfois d'identifier ce qui doit être mocké et comment le faire (quel chemin utiliser, à quel niveau placer le mock)
12:16 <discord_afpy> <Deuchnord> oui, ça pour le coup je suis déjà habitué à le faire en PHP, j'imagine que la logique doit pas être très différente en Python ^^
12:16 <entwanne> Je ne sais pas pour PHP, mais en tout cas ça peut être assez trompeur
12:19 <discord_afpy> <Chadys> Clairement, des fois en fonction du module qui fait l'importation tu dois le path que tu mock, c'est une gymnastique à prendre
12:19 <discord_afpy> <Chadys> Quelques petits exemple à la volée de mon projet actuel comme je suis dessus :
12:19 <discord_afpy> <Chadys> ```
12:19 <discord_afpy> <Chadys> mocker.patch("time.sleep")
12:19 <discord_afpy> <Chadys>
12:19 <discord_afpy> <Chadys> # return value permet de choisir la valeur de retour, dans mon cas je voulais des données précises
12:19 <discord_afpy> <Chadys> mocker.patch.object(
12:19 <discord_afpy> <Chadys> formatter,
12:19 <discord_afpy> <Chadys> "get_raw_data",
12:19 <discord_afpy> <Chadys> return_value=data,
12:19 <discord_afpy> <Chadys> )
12:19 <discord_afpy> <Chadys>
12:19 <discord_afpy> <Chadys> # side_effect permet de déclencher des exception à l'appel de la fonction
12:19 <discord_afpy> <Chadys> mocker.patch.object(importation.imported_file, "open", side_effect=OSError)
12:24 <discord_afpy> <Deuchnord> d'accord, merci !
12:29 <discord_afpy> <Deuchnord> Juste pour être sûr, le type de cet objet `mocker` reçu en paramètre est bien `unittest.mock.patch` ? J'essaie de mettre le plus possible les types dans mes signatures de fonction, ne serait-ce que pour aider mon IDE (PyCharm) à faire de l'autocomplétion
12:33 <entwanne> Faudrait inspecter pour voir, ça provient d'une fixture donc c'est un peu tordu. De ce que je vois ce serait un objet de type MockerFixture (https://github.com/pytest-dev/pytest-mock/blob/main/src/pytest_mock/plugin.py#L40)
12:33 <entwanne> Mais je doute qu'il soit pertinent d'inscrire le type strict de cet objet, ce qui est intéressant est plutôt son interface
12:35 <discord_afpy> <Deuchnord> d'acc, merci ^^
12:44 <misc> le password manager de l'afpy, c'est toujours passbolt ?
12:46 <discord_afpy> <Chadys> mocker est de type Mocker fixture
12:46 <discord_afpy> <Chadys> `from pytest_mock import MockerFixture`
12:46 <discord_afpy> <Chadys> (je le type systématiquement)
13:03 <discord_afpy> <Deuchnord> merci !
13:06 <entwanne> C'est pas un peu contradictoire de typer strictement (= avec autre chose qu'un protocole) un outil qui produit des objets qui ne passeraient justement pas les vérifications de type stricts (puisqu'ils ne font qu'en copier les interfaces) ?
13:10 <debnet> @misc Nan. On utilise pass maintenant.
13:42 <misc> ah, c'est bien ce que je me disait
13:43 <misc> une raison de ne plus utiliser passbolt ? (vu qu'avec le soleil, mes collégues se reposent des questions sur la gestion des mots de passes)
13:44 <misc> (pour partager des mdp de reseaux sociaux, donc j'ai proposé de simplement faire des processes et dire qui a le mot de passe, vu que c'est le souci à la base, mais bon...)
14:01 <discord_afpy> <Chadys> Dépend le but, moi c'est pour faciliter l'autocomplétion et, hors test, détecter des erreurs
14:05 <mdk> misc: moi ce qui me genait le plus dans passbolt c'est l'extension de navigateur... :D
14:06 <misc> mdk: dans le sens ou c'etait obligatoire ?
14:06 <mdk> oui, et dans le sens ou je suis très regardant sur les extensions que j'utilise
14:07 <mdk> pour obtenir un mot de passe que je vais utiliser en dehors de mon navigateur, j'ai du mal a accepter d'installer une extension de navigateur.
14:07 <misc> ok, ouais, c'est un souci :/
14:08 <mdk> pass convient beaucoup mieux a mon usage, typiquement dans https://git.afpy.org/AFPy/helloasso-to-discourse
14:08 <mdk> faire un :
14:08 <mdk> $ helloasso-to-discourse list-badges https://discuss.afpy.org "$(pass discuss.afpy.org-api-key)"
14:08 <mdk> je trouve ça normal
14:08 <misc> ouais, mais c'est un use case différent de ce que je vise
14:09 <misc> (sinon, moi, gpg + vim, ça me va :p )
14:09 <mdk> et avec un gpg-agent il ne te demande pas le mot de passe a chaque commande, c'est confortable (pour moi pour mon usage)
14:09 <mdk> le fait que ce soit versionné aussi je trouve ca confortable, facile a sauvegarder, c'est juste des fichiers, "je peux comprendre comment ça fonctionne"
14:10 <mdk> c'est important, pour moi, de comprendre comment ça fonctionne, surtout pour stocker des mots de passe...
14:10 <mdk> passbolt j'ai jamais vraiment compris :( #noob
14:28 <discord_afpy> <Chadys> De mon côté en perso et dans ma boite on utilise bitwarden. Opensource, Saas ou auto-hébergé, appli native + mobile + interface web + extension, j'en suis contente
14:28 <discord_afpy> <Melcore> On a des stats d'utilisation du gitea (j'ai l'impression que ça a bien pris)
14:28 <discord_afpy> <Melcore> ? (c'est une question)
14:30 <discord_afpy> <Chadys> Jamais tester une intégration via l'API cependant
14:30 <misc> on utilise deja bitwarden au taf, mais 1) ça serait mieux d'avoir un truc séparé 2) mon collégue a ralé sur le classement des messages (dans le sens ou on avait pas les groupes comme on voulait)
14:30 <misc> (truc séparé pour Fedora et les autres communautés )
14:46 <entwanne> j'aurais bien utilisé pass en perso pour avoir un truc bien qui ne soit pas exposé sur le net, mais mon côté parano fait que j'aime pas que le nom du site apparaisse en clair dans le nom du fichier, donc il me faudrait une surcouche pour hasher le nom
14:51 <mdk> entwanne: hpass () { pass "$(printf "%s" "$1" | sha256sum - | awk '{print $1}')"; }
14:51 <mdk> ?
14:52 <mdk> (Le premier qui dit qu'il faudrait "saler" le nom avec un secret au cas ou...)
14:52 <entwanne> j'étais en train de l'écrire :D
14:52 <mdk> haha
14:53 <mdk> Voilà pourquoi j'aime bien pass.
14:53 <entwanne> Nan sinon mon soucis c'est que ça ne permet pas de lister facilement quels sont les services pour lesquels tu as des identifiants (j'ai dit hasher tout à l'heure mais non faudrait un truc réversible ou stocker le nom du service en plus dans le fichier)
14:54 <entwanne> j'avais commencé à coder un truc qui faisait ça justement, mais j'ai jamais terminé
14:54 <mdk> Tu peux stocker le nom du service dans le fichier (garde juste le mot de passe a la premiere ligne)
14:54 <mdk> Après tu peux toujours chercher un service a coup de `pass grep ...`
14:54 <mdk> attention c'est lent :P
14:55 <asyd> faut saler
14:55 <mdk> vraiment lent
14:55 <mdk> HANNN
14:55 <asyd> c'est meilleur avec du sel ):
14:55 <mdk> Argumente, argumente ! ! :p
14:56 <asyd> entwanne: stock le repo git dans ecryptfs :)
14:57 <entwanne> c'est facile à mettre sur une clé usb ça ?
14:57 <asyd> euh y a pas de raison
14:58 <entwanne> j'entends par là avoir le paquet et ses dépendances sur une petite clé usb, de façon à pouvoir déchiffrer les mots de passe depuis n'importe où
14:59 <asyd> n'importe ou = linux ?
14:59 <mdk> $ time pass grep testtesttest
14:59 <mdk> real 1m59.995s
14:59 <entwanne> dans l'idéal non pas seulement, mais c'est un problème que je n'ai pas encore résolu dans tous les cas
15:00 <asyd> perso je connais pas beaucoup de solution magique multi OS pour faire un truc propre, simple
15:01 <entwanne> peut-être que ma solution idéale embarquera une clé usb bootable :D
15:02 <debnet> C'est lent.
15:03 <asyd> tiens j'aime presque bien l'idée, en bootant dessus avec une VM
15:09 <mdk> (Bon j'ai 446 entrées dans mon passwordstore...)
15:09 <asyd> hmm c'est la première fois
15:13 <asyd> je l'ai relancé, 0.014 total
15:14 <asyd> du coup je suis surpris
17:27 <discord_afpy> <Melcore> Je vais probablement avoir un peu de retard ce soir
17:51 <mdk> Réunion dans 9 minutes
17:59 <mdk> https://bbb.afpy.org/b/jul-cb2-1bd-ost
18:00 <mdk> ^ asyd, debnet, Mindiel, et les gens de l'autre côté
18:03 <mdk> Melcore: define: un peu
18:06 <discord_afpy> <Melcore> dans 30 secondes