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
parser.addoption has a buggy argument parser (relative path-like strings) #6904
Comments
at first glance this looks like this is not a initial conftest, i think pytest needs to warn more about plugin registration with the addoption hook when its already too late for that if you move it one folder up it should work |
@RonnyPfannschmidt Sorry, I'm not super experienced with pytest (or confest). I'm not sure what you mean by your message. I don't understand why pytest is trying to register a plugin when I use the addoption hook to create a unrelated flag. When you say move "it" up one folder, do you mean confest? I can't really do that in my example because the file I'm referring to is not part of the test project - conftest belongs in the |
i mean moving the conftest up one folder, pytest no longer scans all of the conftests in all of the folders because people did horrid stuff, sorry about that one |
OK, I understand your work around, but why does putting an equal sign there make it work? |
@themanifold with the =, pytest doesnt consider it as a existing path contributiong to finding the this is a issue with finding the correct if you cringe from the explanation thats natural, i also cringed when writing it (the horrors of bugfix collusion) |
I'm getting the same behavior If I use something like --driver_path webdrivers/chromedriver, it breaks with the error: "ERROR: usage: _jb_pytest_runner.py [options] [file_or_dir] [file_or_dir] [...] Using it like this makes it work as stated above Using anything that doesn't match a folder works as well |
If I provide an existing relative path to pytest via
parser.addoption
then I get the following error message:This does not happen to a relative path that is non-existent.
If you add an equal sign (
=
) instead of a blank space, this error does not occur.This is slightly confusing to me as I do not see why
parser.addoption
cares about whether we're passing in a file (I would have thought it was just deal with the string). And if it does care about whether something is a file, why is it OK with a nonexistent file?A minimal bit of code that will reproduce this,
conftest.py
Place this in a folder with an existing relative file above it, e.g.:
Enter the
test
folder and executepytest --var-file ../foo.txt
and observe the error message above.Running
pytest --var-file bar.txt
will not produce an error messageRunning
pytest --var-file ../notthere.txt
will not produce the error messageRunning
pytest --var-file=../foo.txt
will not produce the error messageOutput of
pip freeze
:Note, observed this in pytest
5.0.1
as well.The text was updated successfully, but these errors were encountered: