Projet

Général

Profil

Development #39597

cmis : utiliser httmock dans les tests pour avoir une couverture 'plus profonde'

Ajouté par Nicolas Roche il y a environ 4 ans. Mis à jour il y a environ 4 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans #39391, on se rend compte que les tests,
bien qu'il ne court-circuitent pas un chemin de code,
n'ont pas levé l'exception observée.


Fichiers


Demandes liées

Lié à Passerelle - Bug #39391: cmis py3: pas bon les bytes dans StringIOFermé29 janvier 2020

Actions

Révisions associées

Révision 577fbfa3 (diff)
Ajouté par Nicolas Roche il y a environ 4 ans

cmis: add a test that mock http requests (#39597)

Révision 29311cee (diff)
Ajouté par Nicolas Roche il y a environ 4 ans

Revert "cmis: add a test that mock http requests (#39597)"

This reverts commit 577fbfa3b9e99c989e12abed7b8793933fa9d837.

Révision df051033 (diff)
Ajouté par Nicolas Roche il y a environ 4 ans

cmis: add a test that mock http requests (#39597)

Historique

#1

Mis à jour par Nicolas Roche il y a environ 4 ans

  • Lié à Bug #39391: cmis py3: pas bon les bytes dans StringIO ajouté
#2

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

  • Sujet changé de cmis : utiliser httmock dans les tests pour avoir une couverture 'plus procfonde' à cmis : utiliser httmock dans les tests pour avoir une couverture 'plus profonde'
#3

Mis à jour par Nicolas Roche il y a environ 4 ans

cf https://pypi.org/project/httmock/

A mocking library for `requests` for Python 2.7 and 3.4+.

Mais ici, cmislib utilise httplib2, donc j'ai directement utilisé mock.

Sinon j'aurais aussi voulu tester le contenu envoyé par le connecteur au serveur, mais le contenu change entre les tests python2 et python3.

  + s:propertyId propertyDefinitionId="cmis:objectTypeId">
  +         <cmis:value>cmis:document</cmis:value>
  +       </cmis:propertyId>
  - s:propertyString propertyDefinitionId="cmis:name">
  +       <cmis:propertyString propertyDefinitionId="cmis:name">...

#4

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

Nicolas Roche a écrit :

cf https://pypi.org/project/httmock/

A mocking library for `requests` for Python 2.7 and 3.4+.

Mais ici, cmislib utilise httplib2, donc j'ai directement utilisé mock.

Sinon j'aurais aussi voulu tester le contenu envoyé par le connecteur au serveur, mais le contenu change entre les tests python2 et python3.
[...]

Ne vise que python3 pour ces tests, on est en cours de migration python3, pour un connecteur particulier on peut négliger python2 dans l'intervalle.

#5

Mis à jour par Nicolas Roche il y a environ 4 ans

Avec un "if sys.version_info >= (3, 7)" dans le test.

#6

Mis à jour par Frédéric Péters il y a environ 4 ans

Avec un "if sys.version_info >= (3, 7)" dans le test.

Nos déploiements se font sur Python 3.5.

#7

Mis à jour par Frédéric Péters il y a environ 4 ans

(et pour regarder si on est en Python 3, on utilise plutôt six.PY3).

#9

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée

Si c'est toujours ok, pousse ainsi.

#10

Mis à jour par Nicolas Roche il y a environ 4 ans

la requête POST a changé depuis, sans que je ne m'explique pourquoi :

diff --git a/tests/data/cmis/cmis3.in.xml b/tests/data/cmis/cmis3.in.xml
@@ -1,12 +1,12 @@
-    <cmisra:mediatype>application/binary</cmisra:mediatype>
+    <cmisra:mediatype>image/jpeg</cmisra:mediatype>

parce que (merci Manu) #21807 fait en sorte de passer le content-type à la lib pour qu'elle n'essaye pas de le deviner.
(ici je passe file_content = 'salut\n')

#11

Mis à jour par Nicolas Roche il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 577fbfa3b9e99c989e12abed7b8793933fa9d837
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Sat Feb 8 21:25:04 2020 +0100

    cmis: add a test that mock http requests (#39597)
#12

Mis à jour par Emmanuel Cazenave il y a environ 4 ans

#13

Mis à jour par Nicolas Roche il y a environ 4 ans

Oui désolé, ici j'ai du le relancer pour qu'il passe en pensant à une fausse manip de ma part.
En fait c'est la même erreur que celle observée plus haut avec python 2.7 :
les balises enfants properties sont inversées, mais sur jenkins (python 3.5) c'est aléatoire.

#14

Mis à jour par Nicolas Roche il y a environ 4 ans

  • Statut changé de Résolu (à déployer) à En cours

Je revert en attendant de trouver comment trier les arbres.

commit 29311ceee7e153be51608a47de9fb9a2e18af9ff
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Thu Mar 5 00:48:28 2020 +0100

    Revert "cmis: add a test that mock http requests (#39597)" 

    This reverts commit 577fbfa3b9e99c989e12abed7b8793933fa9d837.

#15

Mis à jour par Nicolas Roche il y a environ 4 ans

J'ai relancé 3 fois le build jenkins pour être sûr de mon coup cette fois ci.

#16

Mis à jour par Emmanuel Cazenave il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée

Problème d’ordonnancement d'éléments dans un xml me dit Nico (bug aléatoire selon les version de python) .

#17

Mis à jour par Nicolas Roche il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit df05103354cecc2de67bd220baf842c3a0f1e222
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Sat Feb 8 21:25:04 2020 +0100

    cmis: add a test that mock http requests (#39597)
#18

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

Formats disponibles : Atom PDF