Skip to content

GH-100479: Fix pathlib test failure on WASI - #104215

Merged
AlexWaygood merged 1 commit into
python:mainfrom
barneygale:gh-100479-fix-wasi
May 7, 2023
Merged

GH-100479: Fix pathlib test failure on WASI#104215
AlexWaygood merged 1 commit into
python:mainfrom
barneygale:gh-100479-fix-wasi

Conversation

@barneygale

@barneygalebarneygale commented May 5, 2023

Copy link
Copy Markdown
Contributor

self.assertEqual(42, p.absolute().session_id)
self.assertEqual(42, p.resolve().session_id)
self.assertEqual(42, p.with_segments('~').expanduser().session_id)
if not is_wasi: # WASI has no user accounts.

@ericsnowcurrentlyericsnowcurrentlyMay 5, 2023

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW, I know very little about this module or how the tests are usually done. That said, it looks like all the other uses of is_wasi in this file relate to skipping the whole test, rather than a part of it. Personally, I have no relevant opinion on if your change is okay. 😄 (My irrelevant opinion is that, generally, the behavior of a test should not change based on some environmental condition.)

(Also, FYI, I pointed out the failing buildbot earlier because the first failure happened when a change of mine was merged. That's when I noticed it was probably the pathlib change. Otherwise I don't have any particular interest and probably would not have noticed. 😄)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Eric -- if it's just a specific part of this test that fails on WASI, best to separate it out into a separate test method that's decorated with @skipIf(is_wasi, "WASI has no user accounts")

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree in principle, but this style of tweaking test behaviour slightly based on what the system supports is pervasive throughout test_pathlib.py. For example, a few lines below we have:

ifos_helper.can_symlink():
self.assertEqual(42, (p/'linkA').readlink().session_id)

Is there something to be said for using a consistent approach, even if it's imperfect?

(I don't feel strongly about this, just thought I'd point it out!)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I don't like it, and I'd love to see a PR cleaning all those up ;)

But I guess consistency wins the day for now!

@AlexWaygood

Copy link
Copy Markdown
Member

!buildbot .wasm.

@bedevere-bot

Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @AlexWaygood for commit 3c74650 🤖

The command will test the builders whose names match following regular expression: .*wasm.*

The builders matched are:

  • wasm32-wasi PR
  • wasm32-emscripten browser (dynamic linking, no tests) PR
  • wasm32-emscripten node (dynamic linking) PR
  • wasm32-emscripten node (pthreads) PR

@AlexWaygoodAlexWaygood left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, providing the buildbots pass!

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip newstestsTests in the Lib/test dirtopic-pathlib

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@barneygale@AlexWaygood@bedevere-bot@ericsnowcurrently