[Bug]: Chunked request from request libraly

Ouverte
#554 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
api

Piste de recherche

Start with the requests integration entry points RequestsOpenAPIRequest, RequestsOpenAPIResponse, and unmarshal_response, then reproduce the failure using the chunk_generator example. Trace how the request body is inspected during unmarshaling. Done means a chunked request no longer triggers the assertion and the chunked body is checked as far as supported.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

kind/bug kind/bug/confirmed
Actual Behavior

When it shout check response where request data was chunked it fails.

    @property
    def body(self) -> Optional[str]:
        if self.request.body is None:
            return None
        if isinstance(self.request.body, bytes):
            return self.request.body.decode("utf-8")
>       assert isinstance(self.request.body, str)
E       AssertionError
Expected Behavior

Check everithing which can, ideally chunked body itself.

Steps to Reproduce
    @staticmethod
    def chunk_generator(data):
        for block in raw:
            yield block
request = Request(method, url, headers=headers, data=chunk_generator(data), **kwargs)
response = session.send(session.prepare_request(request))  
openapi_request = RequestsOpenAPIRequest(request)
openapi_response = RequestsOpenAPIResponse(response)
unmarshal_response(openapi_request, openapi_response, self.spec)
OpenAPI Core Version

0.17.1

OpenAPI Core Integration

requests

Affected Area(s)

unmarshaling

References

No response

Anything else we need to know?

No response

Would you like to implement a fix?

None

Langage dominant
Python
Étoiles
368
Forks
140
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de python-openapi/openapi-core

Toutes les issues de python-openapi/openapi-core

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.