Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

UNC path breaks _win32_longpath() #33

Closed
bilderbuchi opened this issue Jul 20, 2020 · 4 comments · Fixed by #34
Closed

UNC path breaks _win32_longpath() #33

bilderbuchi opened this issue Jul 20, 2020 · 4 comments · Fixed by #34

Comments

@bilderbuchi
Copy link
Contributor

bilderbuchi commented Jul 20, 2020

I have, due to DFS in my environment, tests running in a dfs path, which results in a UNC path (\\my.domain\dfs\some\path) being passed to copytree in shared_datadir(). This results in copytree failing with

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '\\\\?\\\\\\my.domain\\dfs\\bla...

I traced this back to return '\\\\?\\' + os.path.normpath(path) in plugin._win32_longpath(), which afaict is not correct in case of a UNC path (see above UNC link). Then you need to insert an additional UNC\, so the prefix should be '\\\\?\\UNC\\' instead. UNC paths should be recognizable because they start with \\.

@gabrielcnr
Copy link
Owner

Thanks for raising this. Would you like to open a Pull Request with your proposed fix? It would be very welcome. :-)

@bilderbuchi
Copy link
Contributor Author

I can try, could take a while though.

@gabrielcnr
Copy link
Owner

Apparently you identified the problem and even suggested what could possibly be the solution. We can help you getting the fix branch, the tests and the Pull Request if you need help with those. It would be a great contribution. ;-)

bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Oct 14, 2020
bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Oct 14, 2020
@bilderbuchi
Copy link
Contributor Author

See #34 :-)

bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Sep 26, 2023
bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Sep 26, 2023
bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Sep 26, 2023
bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Sep 26, 2023
bilderbuchi added a commit to bilderbuchi/pytest-datadir that referenced this issue Sep 26, 2023
nicoddemus pushed a commit that referenced this issue Sep 28, 2023
github-actions bot added a commit to MaRDI4NFDI/open-interfaces that referenced this issue Oct 9, 2023
Bumps [pytest-datadir](https://github.com/gabrielcnr/pytest-datadir)
from 1.4.1 to 1.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gabrielcnr/pytest-datadir/blob/master/CHANGELOG.rst">pytest-datadir's
changelog</a>.</em></p>
<blockquote>
<h2>1.5.0 (2023-10-02)</h2>
<ul>
<li>Added support for Python 3.11 and 3.12.</li>
<li>Dropped support for Python 3.7.</li>
<li>Fix handling of UNC paths on Windows
(<code>[#33](gabrielcnr/pytest-datadir#33)
&lt;https://github.com/gabrielcnr/pytest-datadir/issues/33&gt;</code>__).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/538f817cf1df1226eab23b8a8175ad1f746940ad"><code>538f817</code></a>
Release 1.5.0</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/5bff4f1d120d34cff3c4bcc2097d5955e2c1a295"><code>5bff4f1</code></a>
Merge pull request <a
href="https://github.com/gabrielcnr/pytest-datadir/issues/67">#67</a>
from nicoddemus/split-ci-workflows</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/35ec689e9a29c1ec5d8435a86408dd363eea330c"><code>35ec689</code></a>
Simplify build matrix</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/253b6d8ff431b311799e8b28dfa9f1686d214c14"><code>253b6d8</code></a>
Improve CI workflow</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/2f2d04717e3af99a4821de0cd38ee157bc651a2b"><code>2f2d047</code></a>
Drop Python 3.7, add Python 3.11 and 3.12</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/5a054df35cb72b43ec349e496b21c44cf8e2cbf0"><code>5a054df</code></a>
Fix UNC bug in _win32_longpath (<a
href="https://github.com/gabrielcnr/pytest-datadir/issues/34">#34</a>)</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/0b5bb4d94d5344c7c0ca127553fbd268c1ab8f21"><code>0b5bb4d</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/gabrielcnr/pytest-datadir/issues/65">#65</a>)</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/41bb281f96c88192aed275cc281abdc1a02d90f8"><code>41bb281</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/gabrielcnr/pytest-datadir/issues/64">#64</a>)</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/58899f76dafee72d16bd379a0fcb90bc32d46ccd"><code>58899f7</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/gabrielcnr/pytest-datadir/issues/63">#63</a>)</li>
<li><a
href="https://github.com/gabrielcnr/pytest-datadir/commit/70ecb92ecae780de471c67ffdcda6eb8c4bdc9a4"><code>70ecb92</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/gabrielcnr/pytest-datadir/issues/62">#62</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/gabrielcnr/pytest-datadir/compare/1.4.1...v1.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-datadir&package-manager=pip&previous-version=1.4.1&new-version=1.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants