-
Notifications
You must be signed in to change notification settings - Fork 10
Update call_fixture() to work with pytest 8.4.
#166
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The implementation retains compatibility with older versions.
|
✅ 41/41 passed, 5 skipped, 6m45s total Running from acceptance #207 |
pritishpai
approved these changes
Jul 16, 2025
gueniai
added a commit
that referenced
this pull request
Aug 7, 2025
* Added property `id` to get service principal id ([#170](#170)). The service principal functionality has been enhanced with the introduction of a new `id` property, which returns the service principal ID as a string, simplifying its usage in tests. The `create` method has been updated to utilize this `id` property, ensuring consistency throughout the code. Additionally, the `id` property is now directly used when creating secrets, updating group memberships, and updating workspace assignments, with the exception of the `workspace_assignment.update` method. The logging of account links has also been updated to use the `id` property. Furthermore, test cases have been updated to include service principals in group members, and a new function `make_run_as` has been introduced to create service principals for testing purposes, along with a new test case `test_make_run_as_no_args` to verify its functionality, addressing issues related to no-cheat in linked pull requests and improving overall testing capabilities. * Updated `call_fixture()` to work with pytest 8.4 ([#166](#166)). The `call_fixture` function has been enhanced to support pytest version 8.4 and later, while maintaining backward compatibility with older versions. To address the deprecation of direct access to pytest fixtures since version 4.x, the function now dynamically checks the pytest version and utilizes the corresponding mechanism to unwrap fixtures. For pytest 8.4 and later, it leverages the `_get_wrapped_function` attribute, whereas for older versions, it relies on the `__pytest_wrapped__` attribute. Additionally, the function now includes input validation, raising a `ValueError` if the provided function is not a valid pytest fixture, ensuring more robust error handling. This update provides a temporary solution, with plans for future refinement to potentially utilize `pytest.FixtureRequest` and `request.getfixturevalue()` for accessing fixtures in a more supported and sustainable manner.
Merged
gueniai
added a commit
that referenced
this pull request
Aug 7, 2025
# Release notes: * Added property `id` to get service principal id ([#170](#170)). The service principal functionality has been enhanced with the introduction of a new `id` property, which returns the service principal ID as a string, simplifying its usage in tests. The `create` method has been updated to utilize this `id` property, ensuring consistency throughout the code. Additionally, the `id` property is now directly used when creating secrets, updating group memberships, and updating workspace assignments, with the exception of the `workspace_assignment.update` method. The logging of account links has also been updated to use the `id` property. Furthermore, test cases have been updated to include service principals in group members, and a new function `make_run_as` has been introduced to create service principals for testing purposes, along with a new test case `test_make_run_as_no_args` to verify its functionality, addressing issues related to no-cheat in linked pull requests and improving overall testing capabilities. * Updated `call_fixture()` to work with pytest 8.4 ([#166](#166)). The `call_fixture` function has been enhanced to support pytest version 8.4 and later, while maintaining backward compatibility with older versions. To address the deprecation of direct access to pytest fixtures since version 4.x, the function now dynamically checks the pytest version and utilizes the corresponding mechanism to unwrap fixtures. For pytest 8.4 and later, it leverages the `_get_wrapped_function` attribute, whereas for older versions, it relies on the `__pytest_wrapped__` attribute. Additionally, the function now includes input validation, raising a `ValueError` if the provided function is not a valid pytest fixture, ensuring more robust error handling. This update provides a temporary solution, with plans for future refinement to potentially utilize `pytest.FixtureRequest` and `request.getfixturevalue()` for accessing fixtures in a more supported and sustainable manner.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Internally the unit tests for pytester access pytest fixtures directly. This has been deprecated since 4.x, but the project currently contains some workarounds (in
call_fixture()) to do this anyway.In pytest 8.4, the internals changed which breaks the way
call_fixture()accesses the underlying fixture. This PR:call_fixture()minimally so that it also works with 8.4+.Resolves #165.