Development #28276
Fonctionner avec Python3 pour Django1.11
0%
Description
En se basant sur le travail déjà effectué dans d'autres briques.
Demandes liées
Révisions associées
python3: auth_oidc mocked endpoint jwt encoding (#28276)
python3: encoding variations in authentic.crypto aes utilities (#28276)
python3: encodinging variations in authentic2.crypto aes testing (#28276)
python3: encoding variations in csv importer (#28276)
python3: explicit delimiter and quotechar in csv import (#28276)
python3: fix inner iterator classes of csv_import (#28276)
python3: encoding variations in hashers (#28276)
python3: encoding variations in idp_oidc (#28276)
python3: encoding variations in idp_oidc testing (#28276)
make ExponentialRetryTimeout.seconds_to_wait always return an int (#28276)
python3: remove various deprecated dict iteration functions (#28276)
python3: variations encoding in idp.saml.saml2_endpoints (#28276)
python3: encoding variations in saml base code (#28276)
python3: encoding variations in tests.test_idp_saml2 (#28276)
python3: monkeypatching variations in import-export site cmd testing (#28276)
python3: encoding variations in auth_fc testing (#28276)
python3: user-id generation in user_import (#28276)
python3: greedy retrieval of ldap mapped-attributes' value (#28276)
python3: encoding variations in ldap testing (#28276)
python3: ldap encrypted binddn must be a string type (#28276)
ldap_backend: do not crash on missing ldap data entries (#28276)
python3: force text on ldap user's cached password (#28276)
python3: json.loads takes str as input (#28276)
python3: encoding variations in test_manager (#28276)
python3: explicit list of export keys in ou manager testing (#28276)
python3: explicit list of export keys in role manager testing (#28276)
python3: import site json from file content (#28276)
python3: open user-import pickle-dumping files as binary data (#28276)
python3: encoding variations in test_role_manager (#28276)
python3: absolute imports in manager.user_views cbv methods (#28276)
python3: handle http responses' payload as str in test_user_manager (#28276)
python3: create explicit list of user csv-exported attributes (#28276)
python3: a number of queries in user export test should be an integer (#28276)
python3: add new type of authorized node in condition validator (#28276)
auth_fc: do not assert depending on dict elements' order (#28276)
python3: encoding variations in auth_fc.models (#28276)
python3: encoding variations in auth_fc.utils (#28276)
python3: encoding variations in test_auth_fc (#28276)
python3: force use of protocol=0 in PickledObjectField (#28276)
python3: force ldap modify list vals to be list (#28276)
python3: use monkeypatch in ldap tests (#28276)
python3: force vals to bytes in LDAP tests (#28276)
python3: use // to force integer result (#28276)
python3: load distribution before loading entry points (#28276)
python3: add a py3 pytest environment in tox.ini (#28276)
Historique
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Lié à Development #28277: Fonctionner en Python3 pour Django1.11 : fournir un jeu de tests unitaires ajouté
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Lié à Development #28278: Fichier setup.py compatible Python3 ajouté
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Statut changé de Nouveau à Information nécessaire
Benjamin, à l'occasion du sprint GI, tu as évoqué quelques chantiers structurels pour A2 (l'abandon des classes Plugin, notamment, si mes souvenirs sont bons).
Est-ce que tu penses que c'est bloquant pour avancer ici ? Ou bien est-ce qu'on peut faire les deux en parallèle ?
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
J'aimerai surtout un unique ticket python3 avec une branche qui avance en parallèle de tout le reste; aussi, mais c'est vrai pour tous les projets, faire un peu attention au code nouveau qu'on commit quand c'est obviously pas compatible, genre préférér django.utils.encoding.force_text(x)
plutôt que unicode(x)
.
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Statut changé de Information nécessaire à En cours
Je suis sur une erreur un peu cryptique : http://perso.entrouvert.org/~pmarillonnet/py3-coverage-dj111-authentic-sqlite.html.
Je creuse l'affaire, histoire de voir s'il manque quelque part un marqueur pytest d'accès à la DB django.
Mis à jour par Emmanuel Cazenave il y a environ 5 ans
Benjamin Dauvergne a écrit :
J'aimerai surtout un unique ticket python3 avec une branche qui avance en parallèle de tout le reste;
J'avais conseillé à Paul l'inverse il y quelques jours : des petits tickets ciblés qu'on peut pousser petit à petit, c'est comme ça que je m'en suis sortis pour django 1.11.
Au delà des aspects techniques, il y a le problème moral : la longue branche à rebaser en permanence et dont on ne voit jamais le bout, c'est (pour moi) la déprime et l'épuisement assuré.
Mis à jour par Paul Marillonnet il y a environ 5 ans
Paul Marillonnet a écrit :
Je suis sur une erreur un peu cryptique : http://perso.entrouvert.org/~pmarillonnet/py3-coverage-dj111-authentic-sqlite.html.
L'erreur n'apparaît plus lorsqu'on utilise une version de pytest inférieure à la 4.2. Merci Benj.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Finalement c'était une incompatibilité entre mon usage de override_settings sur ROOT_URLCONF et pytest 4.2.0, on peut utiliser pytest 4.2.0 maintenant avec un master à jour.
Mis à jour par Paul Marillonnet il y a environ 5 ans
Bon, arrachage de cheveux : le middleware de cache de session est cassé. (La sauvegarde de session provoque une tentative de sérialisation JSON du dictionnaire de session contenant des valeurs de type byte. Ça explose.)
Il faut, je crois, ré-écrire un middleware de session dont la méthode process_response
veillerait à transformer les objets bytes en valeur JSON-sérialisable avant sauvegarde.
Ou bien, pour ce faire, hériter directement de django.contrib.sessions.backends.db.SessionStore
pour redéfinir les méthodes encode
et decode
de la classe parente SessionBase1.
Selon la loi du 80-20, ça fait partie des 20% les plus difficiles du travail sur ce ticket, je le ferai à la fin. J'ai commenté le test_session_cache
en attendant.
1 Le code des deux méthodes est là, https://docs.djangoproject.com/en/1.11/_modules/django/contrib/sessions/backends/base/. C'est le serialized = self.serializer().dumps(session_dict)
dans la méthode encode
qui fait tout exploser.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Paul Marillonnet a écrit :
Bon, arrachage de cheveux : le middleware de cache de session est cassé. (La sauvegarde de session provoque une tentative de sérialisation JSON du dictionnaire de session contenant des valeurs de type byte. Ça explose.)
Il faut, je crois, ré-écrire un middleware de session dont la méthodeprocess_response
veillerait à transformer les objets bytes en valeur JSON-sérialisable avant sauvegarde.
Ou bien, pour ce faire, hériter directement dedjango.contrib.sessions.backends.db.SessionStore
pour redéfinir les méthodesencode
etdecode
de la classe parente SessionBase1.Selon la loi du 80-20, ça fait partie des 20% les plus difficiles du travail sur ce ticket, je le ferai à la fin. J'ai commenté le
test_session_cache
en attendant.1 Le code des deux méthodes est là, https://docs.djangoproject.com/en/1.11/_modules/django/contrib/sessions/backends/base/. C'est le
serialized = self.serializer().dumps(session_dict)
dans la méthodeencode
qui fait tout exploser.
Il faut trouver d'où viennent ces valeurs bytes et faire en sorte que ce soit de l'unicode, je pense que ça vient du backend LDAP, tu as le nom de la clé ?
Mis à jour par Paul Marillonnet il y a environ 5 ans
Le contenu du dictionnaire de session et la trace jusqu'à la sérialisation ici :
http://perso.entrouvert.org/~pmarillonnet/28726_json_encode_error.html
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Ok essaye ça
diff --git a/src/authentic2/decorators.py b/src/authentic2/decorators.py index 675226d4..83a6a7f1 100644 --- a/src/authentic2/decorators.py +++ b/src/authentic2/decorators.py @@ -1,3 +1,4 @@ +import base64 import pickle import re from json import dumps as json_dumps @@ -224,12 +225,17 @@ class DjangoCache(SimpleDictionnaryCacheMixin, CacheDecoratorBase): class PickleCacheMixin(object): def set(self, key, value): value, tstamp = value - value = pickle.dumps(value) + value = base64.b64encode(pickle.dumps(value)) super(PickleCacheMixin, self).set(key, (value, tstamp)) def get(self, key): value = super(PickleCacheMixin, self).get(key) if value[0] is not None: + value, tsamp = value + try: + value = base64.b64decode(value) + except ValueError: + pass value = (pickle.loads(value[0]), value[1]) return value
Ça devrait être backward compatible.
Mis à jour par Paul Marillonnet il y a environ 5 ans
Non, toujours pas.django.contrib.sessions.backends.db.SessionStore().encode
appelle directement la méthode django.core.signing.JSONSerializer().dumps
(qui fait un simple dumps JSON).
En revanche ce sérialisateur est retrouvé via settings.SESSION_SERIALIZER1.
Je propose de redéfinir ce dernier, en patchant les fonctions loads et dumps en reprenant ton patch dans ta dernière remarque, Benjamin.
1 https://github.com/django/django/blob/stable/1.11.x/django/contrib/sessions/backends/base.py#L51
Mis à jour par Paul Marillonnet il y a environ 5 ans
Paul Marillonnet a écrit :
Non, toujours pas.
Pardon, en fait si, ça corrige le bogue de sérialisation. Je m'étais pris les pieds dans le tapis.
Benj, j'ai poussé ton patch (avec quelques minimes corrections) dans la branche wip relative au ticket.
Mis à jour par Paul Marillonnet il y a environ 5 ans
Avis au(x) relecteur(s) :
Est-ce que je continue à tout pousser dans ma branche à part ?
Ou bien je commence à créer des sous-tickets thématiques, comme l'avait fait Emmanuel pour le support de Django 1.11 ?
(J'en suis à une soixantaine de commits. Environ les deux tiers des tests unitaires passent.)
Mis à jour par Paul Marillonnet il y a environ 5 ans
Je me creuse la tête sur le backend LDAP, sans avoir de résultat satisfaisant pour l'instant.
Je dois passer à d'autres dévs, je reviens ici plus tard.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Avec l'intégration de #30577 ça devrait aller mieux.
Mis à jour par Paul Marillonnet il y a environ 5 ans
Oui, je vais essayer.
Je voudrais d'abord créer des petits tickets pour inclure les commits actuels de cette branche wip dans la branche master, sinon je ne vais pas m'en sortir.
(Les changements dans la branche WIP sont trop nombreux, impossible de rebaser sur master, qui vit sa vie aussi de son côté.)
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31137: python3: adapter la syntaxe des exceptions ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31139: python3: utiliser les fonctions de parsing d'url de django.utils.six ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31140: python3: utiliser __future__.print_function ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31143: python3 : corriger les imports relatifs implicites de sous-module ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31144: python3 : l'initialisation du type de base 'int' ne prend pas de paramètre ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31145: python3 : retirer les appels à "execfile()", qui n'est plus une fonction native ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31147: python3 : le constructeur de la classe native "object" ne prend pas de paramètre ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31149: python3 : retirer dans le code python et dans les gabarits django les appels à dict.iteritems ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31150: python3 : string.letters n'existe plus ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31151: python3 : déprécier le type natif 'unicode' de python2 ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31152: python3 : utiliser six.StringIO ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31153: python3 : retirer l'appel explicite au module __builtin__ ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31155: python3 : déprécier django.utils.encoding.smart_unicode ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31156: python3 : utiliser six.moves.http_client à la place de httplib ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31158: python3 : retirer l'usage de tabulations dans les fichiers source python ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31159: python3: déprécier le type natif 'basestring' ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31160: python3 : restreindre à une version antérieure à 4.2 le module pytest utilisé par tox ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31161: python3: fournir un script getlasso3.sh ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31162: python3: prendre en compte un changement d'interface (rétrocompatible) du module uuid ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31163: python3 : utiliser l'encodage hexadécimal de binascii ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Bug #31164: python3: utiliser six.moves._thread à la place de thread ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31165: python3: utiliser six.moves.reduce à la place de la fonction native reduce ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31166: python3: s'assurer que authentic2.exponential_retry_timeout.ExponentialRetryTimeout.seconds_to_wait retourne un entier ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31167: python3 : corriger l'encodage utf-8 des crédentiels de l'usager dans le fichier de tests principal ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31168: python3 : s'assurer de l'encodage et l'échappement identiques de deux URLs comparées dans tests ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Bug #31169: python3 : ne plus comparer des chaînes de caractères avec DjangoWebtestResponse.content dans les tests ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31170: python3 : les fonctions de génération du sub OIDC doivent renvoyer du texte ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31171: python3 : gérer les variations d'encodage pour le sous-module authentic2.crypto ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31172: python3 : gérer l'encodage de la clé secrête OIDC avant chiffrement AES ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31173: python3 : diverses variations d'encodage à gérer dans le fichier de test principal ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31174: python3 : gérer l'encodage des données passant par le mixin de cache pickle ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31175: python3 : gérer l'encodage base64 des entêtes d'autorisation HTTP Basic dans les tests ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31176: python3 : utiliser un b'' pour une comparaison dans le fichier de test des APIs ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31178: python3 : déprecier l'usage de str dans le champ SAML PickledObject ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31179: python3 : PIL.Image.open ne prend qu'un chemin de fichier en paramètre ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31180: python3 : choisir la bonne exception à détecter dans le test authn OIDC de décodage en base64 de URL ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31182: python3 : déprécier l'attribut __metaclass__ ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31183: python3 : encoder l'identifiant d'un fournisseur SAML afin de calculer son haché SHA1 ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31184: python3 : uniformiser le comportement de la méthode magique __str__ des OU ajouté
Mis à jour par Paul Marillonnet il y a environ 5 ans
- Lié à Development #31185: python3 : gérer l'encodage ascii des dumps json lors des tests d'import de site ajouté
Mis à jour par Paul Marillonnet il y a presque 5 ans
Et donc on a un méta-problème :)
L'enregistrement d'un champ authentic2.compat.JSONField provoque un ajout de champ du champ via la métaclasse (django.db.models.options.Options.add_field
).
Cette métaclasse maintient une liste des champs locaux, et l'ajout provoque une insertion dans la liste après détermination de l'emplacement via un bisect.
Le bisect provoque une comparaison entre des objets de classes pour lesquelles les méthodes magiques de comparaison ne sont pas implémentées.
En Python 2, ce n'est pas un souci :
In [2]: class A(object): ...: pass ...: In [3]: class B(object): ...: pass ...: In [4]: a = A() In [5]: b = B() In [6]: a < b Out[6]: True
Par contre en Python 3, ce n'est pas la même histoire (et c'est mieux comme ça) :
In [1]: class A(object): ...: pass ...: In [2]: class B(object): ...: pass ...: In [3]: a = A() In [4]: b = B() In [5]: a < b --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-5-8c747544e8c8> in <module>() ----> 1 a < b TypeError: '<' not supported between instances of 'A' and 'B'
Il faut revoir le code de authentic2.compat.JSONField pour prendre en compte, en plus de la compatibilité dj1.8/1.11, ces variations entre les deux versions de Python.
Je ne sais pas encore comment faire ça proprement, ou disons le moins salement possible, je continue de me creuser la tête.
Mis à jour par Frédéric Péters il y a presque 5 ans
Je ne sais pas encore comment faire ça proprement, ou disons le moins salement possible, je continue de me creuser la tête.
Faut pas se prendre la tête ici; faut laisser ce bout de côté, passer en Django 1.11 exclusivement, puis revenir sur le sujet.
Mis à jour par Paul Marillonnet il y a environ 4 ans
Allez, on a jamais été aussi proche du but :)
Pour info ça se passe maintenant ici: https://git.entrouvert.org/authentic.git/log/?h=wip/py3-nouvelle-vague
Je vais supprimer les anciennes branches après avoir vérifié que tout ce qu'elles contenaient d'intéressant a été pris en compte.
Mis à jour par Paul Marillonnet il y a environ 4 ans
- Statut changé de En cours à Solution proposée
Tous les tests sauf deux (tests unitaires ldap que je n'ai pas eu le temps de migrer cette semaine et que j'ai donc annotés avec pytest.mark.skipif(…)
) tournent en python3, et ça se passe ici :
https://git.entrouvert.org/authentic.git/log/?h=wip/py3-nouvelle-vague
(L'exécution des tests est donc là.)
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Je valide ta branche mise à jour (py3-bdauvergne), si t'es ok avec ça Paul je pousse.
Mis à jour par Paul Marillonnet il y a environ 4 ans
- Assigné à mis à Benjamin Dauvergne
Ok pour moi, go.
Mis à jour par Benjamin Dauvergne il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 2290f8a228110489547053c616f2ecc4208fb96d Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 14:03:19 2020 +0100 python3: add a py3 pytest environment in tox.ini (#28276) commit ce3d8adc13c7422ee18e9b90afe5235adaf724f2 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Sat Feb 29 23:04:35 2020 +0100 python3: load distribution before loading entry points (#28276) commit 352a7c0bf53d635c8bdf2432468f5c80d9e1b053 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Sat Feb 29 19:30:42 2020 +0100 python3: use // to force integer result (#28276) commit 1b1a8ba5857744c76f8c6bcbdada9bc95de1dffc Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Feb 28 13:13:23 2020 +0100 python3: force vals to bytes in LDAP tests (#28276) commit a99d6a569ca5e3e6252e60fb5b5a23abd5e64e5f Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Feb 28 13:12:38 2020 +0100 python3: use monkeypatch in ldap tests (#28276) commit 275756715f69f14ab23d6b5177890f8d190c0c1e Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Feb 28 13:11:42 2020 +0100 python3: force ldap modify list vals to be list (#28276) commit 41af68e27f803fe1f3877a7d135e73981bd6be42 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Thu Feb 27 20:55:40 2020 +0100 python3: force use of protocol=0 in PickledObjectField (#28276) commit 782004f944e87dbba7bbd17ccdf349eb0f51c419 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 13 17:23:27 2020 +0100 python3: encoding variations in test_auth_fc (#28276) commit 3991199cf1046c9f5cbd109c46378f7bc09d92c4 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 13 17:21:49 2020 +0100 python3: encoding variations in auth_fc.utils (#28276) commit 92ff8cd74b3ec990e38c4de2393c8db3b0c2e89f Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 13 17:21:22 2020 +0100 python3: encoding variations in auth_fc.models (#28276) commit a0ad78792aa7bbc099d516939390fc5d38d4655c Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 13 17:19:47 2020 +0100 auth_fc: do not assert depending on dict elements' order (#28276) commit 17cae75c9d2859b88a7370d132b1a27ecf38f639 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Feb 12 15:47:29 2020 +0100 python3: add new type of authorized node in condition validator (#28276) commit fa6cd9751a09ae30ad63cbf2d92b2a118cf42fd3 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Feb 12 12:24:50 2020 +0100 python3: a number of queries in user export test should be an integer (#28276) commit 2eb1110c9e3eccf89eb391d1894286c165251b5d Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Feb 12 12:18:40 2020 +0100 python3: create explicit list of user csv-exported attributes (#28276) commit bd02424f23df170221b30db93e532f1c1ba68f0c Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Feb 12 12:09:45 2020 +0100 python3: handle http responses' payload as str in test_user_manager (#28276) commit f9139e5caf4e6fff776bbe4a14d173ed420c4bff Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Tue Feb 11 15:37:49 2020 +0100 python3: absolute imports in manager.user_views cbv methods (#28276) commit 17860e6ad587d9b76609257e14cfd548ee809760 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Tue Feb 11 15:28:58 2020 +0100 python3: encoding variations in test_role_manager (#28276) commit 9657e787f36cf434e185e5ac97d967cd2994f9e3 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Tue Feb 11 15:09:34 2020 +0100 python3: open user-import pickle-dumping files as binary data (#28276) commit b3b033d0b661458cde4da83857af06d7e41eb6f2 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Tue Feb 11 14:22:52 2020 +0100 python3: import site json from file content (#28276) commit 8c2734c538630e8c021601aa5d56f18dfb07517e Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 17:26:58 2020 +0100 python3: explicit list of export keys in role manager testing (#28276) commit a5638ba3005b41c323b3a788095f357dfc7bcebe Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 17:20:40 2020 +0100 python3: explicit list of export keys in ou manager testing (#28276) commit 9f9ca84af70729404fca66fca438144105b5e637 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 17:12:17 2020 +0100 python3: encoding variations in test_manager (#28276) commit 02668887751d7e70c9c6def7fbc109a511a0af2e Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 15:29:53 2020 +0100 python3: json.loads takes str as input (#28276) commit 1c66f41acd451c0e77bb4505bb311fdb25fd51d2 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 11:48:32 2020 +0100 python3: force text on ldap user's cached password (#28276) commit 12e67550a39eb9d17e3c5027105025aeec644a4f Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Feb 10 11:34:35 2020 +0100 ldap_backend: do not crash on missing ldap data entries (#28276) commit 338478e9f8ed4a710b80be91e67a34f9264fe4d0 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Feb 7 15:10:29 2020 +0100 python3: ldap encrypted binddn must be a string type (#28276) commit 5c53a130ea5d2df178db63bbcb5066bc267cb6a7 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Feb 7 14:11:45 2020 +0100 python3: encoding variations in ldap testing (#28276) commit 06670a35f3438cae80cad5d180374a0a97630192 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Feb 7 14:09:56 2020 +0100 python3: greedy retrieval of ldap mapped-attributes' value (#28276) commit 0ed93b188259dce640fcfceee20ce9a4c30d972a Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Feb 7 12:47:36 2020 +0100 python3: user-id generation in user_import (#28276) commit e3f0268fc2d67c13f7e306ddbb8270e201888084 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Feb 7 12:46:36 2020 +0100 python3: encoding variations in auth_fc testing (#28276) commit 009d16b713fda2d1fe8a909cafc6ce05244179b2 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 18:34:16 2020 +0100 python3: monkeypatching variations in import-export site cmd testing (#28276) commit a6dbdbe054533b63106efd5fdf35336bac7200fe Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 18:26:07 2020 +0100 python3: encoding variations in tests.test_idp_saml2 (#28276) commit 0f9f08e4a38a1c47838556901827fc1db5436f75 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 18:25:30 2020 +0100 python3: encoding variations in saml base code (#28276) commit 775bff6568f1b986cd92f2b8ee63c330f31c7cad Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 18:24:27 2020 +0100 python3: variations encoding in idp.saml.saml2_endpoints (#28276) commit 79505fa00c993d6c8e2aff48d3cf6b03fe8902e2 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 18:23:29 2020 +0100 python3: remove various deprecated dict iteration functions (#28276) commit 607219462030ced29f9626b38c387b02e22644a3 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 17:25:43 2020 +0100 make ExponentialRetryTimeout.seconds_to_wait always return an int (#28276) commit 79e4742c259d571ff1c42a26d7353f9521e1d631 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 17:21:31 2020 +0100 python3: encoding variations in idp_oidc testing (#28276) commit c43cc628216320a10722004d67d23a8a4bd36021 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 17:14:28 2020 +0100 python3: encoding variations in idp_oidc (#28276) commit d5982c5bfc5eb7a0185fe4a2a8347928b3c23ab5 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 16:55:24 2020 +0100 python3: encoding variations in hashers (#28276) commit 75154f2722ac6a6813d59a43d656d49a1df1ff12 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 15:29:21 2020 +0100 python3: fix inner iterator classes of csv_import (#28276) commit 586f322ebad79252ed20235fd20d7c5f6b449fe5 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 15:01:00 2020 +0100 python3: explicit delimiter and quotechar in csv import (#28276) commit c297edbc6ea4c15f8692737ceaf2371356330b8b Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 13:41:02 2020 +0100 python3: encoding variations in csv importer (#28276) commit 8106e22ebe1043d8d3375bffd566603943a634e0 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 13:32:31 2020 +0100 python3: encodinging variations in authentic2.crypto aes testing (#28276) commit b195219dfffe761b9c3459d9e3ae0d1ae67d089c Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 13:31:00 2020 +0100 python3: encoding variations in authentic.crypto aes utilities (#28276) commit 667c1164536d4ae8d4d5ba810542d41597000f3d Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Feb 6 11:56:17 2020 +0100 python3: auth_oidc mocked endpoint jwt encoding (#28276) commit dc58feac772dc2a37eed67d1533d43fdf440f4bf Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Mon Jan 27 10:40:21 2020 +0100 python3: use url-parsing utilities from django (#28276)
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 Serghei Mihai il y a environ 4 ans
- Lié à Development #40501: adapter les templates suite au passage d'authentic en python3 ajouté
python3: use url-parsing utilities from django (#28276)