-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pytest Fails to Run When Passing Long Command Line Arguments #11394
Comments
@nicoddemus Tagging you since this is similar to a bug you closed. |
So the path that appears in the message ( Seems indeed like we need to also surround that |
Exactly, that's my thought as well. |
Fixes pytest-dev#11394 (cherry picked from commit 28ccf47)
@nicoddemus Now I'm just getting an error that the file or directory isn't found. This command line argument is just a a string that represents a CSV list The error message is |
What changed? Did you try the recently released |
@nicoddemus I grabbed from your dev branch, just tried 7.4.2 though and it's the same error I described above. What's the code path look like for parsing command-line arguments? It's correct that that argument isn't a path but why doesn't it just forward the argument as a string? |
@iandonnelly can you post the full traceback? |
There's no traceback for this, I think the argument just isn't being successfully parsed by pytest. I'll try stepping through the code Monday and see if I can figure out why. |
Thanks! |
@nicoddemus Sorry for the delay, I figured out what was going on. Our --long-list value had a space in it so pytest was reading it as two arguments (correctly) and there is no file present for that second argument. I think everything is working as expected now and I think handling the OSError is a real improvement anyway so I think we're all ok now. |
Nice, thanks for the follow up! |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [pytest](https://docs.pytest.org/en/latest/) ([source](https://github.com/pytest-dev/pytest), [changelog](https://docs.pytest.org/en/stable/changelog.html)) | patch | `==7.4.0` -> `==7.4.2` | --- ### Release Notes <details> <summary>pytest-dev/pytest (pytest)</summary> ### [`v7.4.2`](https://github.com/pytest-dev/pytest/releases/tag/7.4.2): pytest 7.4.2 (2023-09-07) [Compare Source](pytest-dev/pytest@7.4.1...7.4.2) ### Bug Fixes - [#​11237](pytest-dev/pytest#11237): Fix doctest collection of `functools.cached_property` objects. - [#​11306](pytest-dev/pytest#11306): Fixed bug using `--importmode=importlib` which would cause package `__init__.py` files to be imported more than once in some cases. - [#​11367](pytest-dev/pytest#11367): Fixed bug where `user_properties` where not being saved in the JUnit XML file if a fixture failed during teardown. - [#​11394](pytest-dev/pytest#11394): Fixed crash when parsing long command line arguments that might be interpreted as files. ### Improved Documentation - [#​11391](pytest-dev/pytest#11391): Improved disclaimer on pytest plugin reference page to better indicate this is an automated, non-curated listing. ### [`v7.4.1`](https://github.com/pytest-dev/pytest/releases/tag/7.4.1): pytest 7.4.1 (2023-09-02) [Compare Source](pytest-dev/pytest@7.4.0...7.4.1) ## Bug Fixes - [#​10337](pytest-dev/pytest#10337): Fixed bug where fake intermediate modules generated by `--import-mode=importlib` would not include the child modules as attributes of the parent modules. - [#​10702](pytest-dev/pytest#10702): Fixed error assertion handling in `pytest.approx` when `None` is an expected or received value when comparing dictionaries. - [#​10811](pytest-dev/pytest#10811): Fixed issue when using `--import-mode=importlib` together with `--doctest-modules` that caused modules to be imported more than once, causing problems with modules that have import side effects. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44LjExIiwidXBkYXRlZEluVmVyIjoiMzYuMTA3LjIiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==--> Reviewed-on: https://git.apud.pl/jacek/adventofcode/pulls/32 Co-authored-by: Renovate <renovate@apud.pl> Co-committed-by: Renovate <renovate@apud.pl>
I am seeing an issue when passing a very long command-line argument to pytest. It fails to run with the following error:
Pytest version:
Tested with 7.3.2 and 7.4.1
pip list output:
Example usage:
conftest.py:
Invocation:
pytest /test_my_thing.py --long-list a,b,c,d,e,f
Note: the actual length of the string passed to
--long-list
is 396 charactersThis seems to be similar to #10169
The text was updated successfully, but these errors were encountered: