-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Originally reported by: Torsten Landschoff (BitBucket: bluehorn, GitHub: bluehorn)
Hi pytest Team,
we run into a lot of error in our release tests lately, which do not occur in nightly an on-commit tests. Looking into this, I discovered that path names get too long when we are using tmpdir:
c:\users\dynamore\appdata\local\temp\pytest-21\test_change_own_private_components_public_incoming_conflict_pull_C__jenkins_workspace_loco2_win7_32_client_release_testdata_testdb_dump_0\vaultdir\zipped\00\005292e500e4e76be18e798eccee423dec2e24c57db4b030348e67a7
On (german) Windows this results into
WindowsError: [Error 3] Das System kann den angegebenen Pfad nicht finden
which would point to a bug in our implementation.
It is unobvious to me that tmpdir includes the following info in the path:
- the full function name
- the parameters of the test call (full path to testdb.dump over here)
This can make the temporary path arbitrary long which causes problems on Windows. I think, py.test should shorten the path automatically (at least on Windows). We can work around this by passing relative filenames (less robust in case the code does a chdir, but that would break other tests anyway) and by shorting the names of our test functions. However, I would like to keep the test function names expressive.