I have started using pathlib.Path
some time ago and I like using it. Now that I have gotten used to it, I have gotten sloppy and forget to cast arguments to s
That last one (wrapping) should work, I suspect you actually test all of these in one py.test
/tox
run and that monkey-patch is still in effect (that might explain why it worked at some point, the order of the test files etc matters if you start to change things on global classes).
That this is hard, is because of Path
essentially being a generator, that on the fly decides whether you are on Windows or Linux, and creates a WindowsPath
resp. PosixPath
accordingly.
BDFL Guido van Rossum already indicated in May 2015:
It does sound like subclassing Path should be made easier.
but nothing happened. Support for pathlib
in 3.6 within other standard libraries has increased, but pathlib itself still has the same problems.
In case anyone else is researching whether pytest's tmpdir
paths play nicely with pathlib.Path
:
Using python 3.6.5
and pytest 3.2.1
, the code posted in the question works perfectly fine without explicitly casting to str
:
from pathlib import Path
def test_tmpdir(tmpdir):
p = Path(tmpdir) / 'testfile.csv'