Native test suite fails on Windows because path assertion ignores repr escaping
É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
- Domaine
- operating-systems, testing-qa
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-oapi1.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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de larksuite/oapi-sdk-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
larksuite/oapi-sdk-python#163 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
larksuite/oapi-sdk-python#162 · 1 commentaire ·
-
CardKit sequence example raises SyntaxError at module scopePeut-être pris @dajiaohuang l’a pris il y a 46 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 94/100
larksuite/oapi-sdk-python#161 ·
-
FeishuChannel.stop leaves bot identity retry task pendingPeut-être pris @dajiaohuang l’a pris il y a 46 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
larksuite/oapi-sdk-python#159 ·
-
DeprecationWarning on Python 3.12+: bundled well_known_types.py uses deprecated datetime.datetime.utcfromtimestampPeut-être pris @roson9527 l’a pris il y a 75 jours. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
larksuite/oapi-sdk-python#145 ·
Toutes les issues de larksuite/oapi-sdk-python
Issues similaires
-
request-theme
Difficulté 2/5 Moins d'une heure Accessibilité débutants 70/100
LizardByte/ThemerrDB#8877 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area/install-update comp/gateway P0 sweeper:risk-compatibility type/bug
Difficulté 2/5 Moins d'une heure Accessibilité débutants 72/100
NousResearch/hermes-agent#135997 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
deepset-ai/haystack#13199 ·
Les mainteneurs répondent en général sous 1 jour
-
[BUG] JSONLoader rejects valid UTF-8 BOM filesPeut-être pris @zouyonghe l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
anthropics/knowledge-work-plugins#1298 ·
Les mainteneurs répondent en général sous 1 jour