-
-
Couldn't load subscription status.
- Fork 33.3k
Fix assertion of pop() result in test_issue_4920 #25209
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
Conversation
The pop method of MutableSet iterates the underlying set object to choose the item to remove. According the the Python language reference "sets do not record element position or order of insertion". Changes the test to not assert concrete result of pop, but just that it was an item from the set, and that the set shrunk by one.
|
Thanks @steve-s for the PR, and @rhettinger for merging it 🌮🎉.. I'm working now to backport this PR to: 3.9. |
Changes the test to not assert concrete result of pop, but just that it was an item from the set, and that the set shrunk by one. (cherry picked from commit 453074c) Co-authored-by: Stepan Sindelar <me@stevesindelar.cz>
|
GH-25269 is a backport of this pull request to the 3.9 branch. |
|
Thanks @steve-s for the PR, and @rhettinger for merging it 🌮🎉.. I'm working now to backport this PR to: 3.8. |
Changes the test to not assert concrete result of pop, but just that it was an item from the set, and that the set shrunk by one. (cherry picked from commit 453074c) Co-authored-by: Stepan Sindelar <me@stevesindelar.cz>
|
GH-25270 is a backport of this pull request to the 3.8 branch. |
Changes the test to not assert concrete result of
popbut just that it was an item from the set, and that the set shrunk by one.The
popmethod ofMutableSetiterates the underlying set object to choose the item to remove. According the the Python language reference "sets do not record element position or order of insertion".Note: changing the values in the original test to, for example:
gives
Background: we discovered this issue while developing GraalPython, where a small difference in internal implementation leads to
pop()giving a different value in this case.