Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Native test suite fails on Windows because path assertion ignores repr escaping

Ouverte Adaptée aux débutants
#160 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

@dajiaohuang y travaille déjà.

Depuis le 24/8/2026.

  • #165 par @dajiaohuang — ouverte

Évaluation

Difficulté
1/5
Temps estimé
Moins d'une heure
Accessibilité débutants
90/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python

Piste de recherche

Commencez par lark_oapi/channel/tests/test_upload_error_propagation.py:37 et comparez l’assertion avec le formatage dans lark_oapi/channel/outbound/media/uploader.py:163. Exécutez python -m pytest -q -p no:cacheprovider dans un environnement Windows pris en charge ; le travail est terminé lorsque la suite native passe et que l’assertion context-path existante reste intacte.

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

Description

Affected version and environment

  • lark-oapi 1.7.3
  • Default branch commit: 0b9e6e48b74bb4b34462fc67b7e738b27e73e697
  • Windows 11
  • Python 3.13.13 and 3.14.4

Problem

The repository's native pytest run has one deterministic Windows-only failure:

FAILED lark_oapi/channel/tests/test_upload_error_propagation.py::
test_gather_buffer_missing_local_file_raises_upload_failed

assert nonexistent in str(err)

gather_buffer() intentionally formats the path with {source.path!r}. On Windows, repr() doubles backslashes, so the raw nonexistent string is not a substring of the rendered exception even though the correct path is preserved in err.context["path"] and as the OSError cause.

Reproduction

From a Windows checkout with test extras installed:

python -m pytest -q -p no:cacheprovider

Observed on both tested interpreters:

  • Python 3.13.13: 657 passed, 1 failed
  • Python 3.14.4: 657 passed, 1 failed

The failure is at lark_oapi/channel/tests/test_upload_error_propagation.py:37; the formatting under test is at lark_oapi/channel/outbound/media/uploader.py:163.

A minimal equivalent is:

path = r"C:\tmp\does_not_exist.png"
message = f"could not read local file {path!r}"
assert path in message  # fails because message contains escaped backslashes

Expected behavior

The native test suite should pass on a supported Windows/Python environment while still checking the useful diagnostic contract.

Suggested fix

Make the assertion representation-aware (for example, assert repr(nonexistent) in the message) and retain the existing exact context assertion, which already proves that callers receive the original path value.

I searched open and closed issues, all pull request states, and repository history for the test name, upload failed, Windows path escaping, and does_not_exist.png. I found no existing report or competing fix; the old Windows path issue #1 and PR #2 concern API URL joining, not exception-message representation.

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

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

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 larksuite/oapi-sdk-python

Toutes les issues de larksuite/oapi-sdk-python

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.