Skip to content
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

Update PyTest and custom plugins #10588

Closed
Kadino opened this issue Jul 8, 2022 · 5 comments · Fixed by #13707
Closed

Update PyTest and custom plugins #10588

Kadino opened this issue Jul 8, 2022 · 5 comments · Fixed by #13707
Assignees
Labels
priority/critical Critical priority. Must be actively worked on as someone's top priority right now. sig/testing Categorizes an issue or PR as relevant to SIG Testing. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@Kadino
Copy link
Contributor

Kadino commented Jul 8, 2022

Is your feature request related to a problem? Please describe.
A recent open source maintenance issue with the atomicwrites library has forced PyTest to remove it as a dependency: pytest-dev/pytest#10115

Breakage to O3DE's installation mechanism has been patched via #10586 however it would still be appropriate to update PyTest and to reduce dependency on atomicwrites.

Describe the solution you'd like
PyTest is updated to the latest version, along with any required updates to O3DE's custom plugins and configuration files. Remove any dependencies no longer required by pytest, such as the module 'py'

Describe alternatives you've considered
N/A

Additional context
Pytest version is managed by https://github.com/o3de/o3de/blob/development/python/requirements.txt
Plugins exist in https://github.com/o3de/o3de/tree/development/Tools/LyTestTools
Configuration files include https://github.com/o3de/o3de/search?l=INI&q=pytest
Changes to PyTest's API may need to be reflected in https://github.com/o3de/o3de/blob/development/cmake/LYTestWrappers.cmake

@Kadino Kadino added needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 8, 2022
@Kadino Kadino added priority/major Major priority. Work that should be handled after all blocking and critical work is done. triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jul 19, 2022
@Kadino Kadino added priority/critical Critical priority. Must be actively worked on as someone's top priority right now. and removed priority/major Major priority. Work that should be handled after all blocking and critical work is done. labels Nov 8, 2022
@Kadino
Copy link
Contributor Author

Kadino commented Nov 8, 2022

Moved to critical as there is also a security flaw which depends on this change.

@Kadino Kadino self-assigned this Dec 2, 2022
@Kadino
Copy link
Contributor Author

Kadino commented Dec 2, 2022

Confirmed custom plugins do in fact fail after upgrading. The majority of failures are emitted from the EditorTest plugin.

@Kadino
Copy link
Contributor Author

Kadino commented Dec 9, 2022

Isolated the single plugin failure to unexpectedly encountering attribute __test__ set explicitly to False for class EditorTest

@Kadino
Copy link
Contributor Author

Kadino commented Dec 11, 2022

There's another underlying failure, which is likely from a previous early-out passing an unexpected node subclass in https://github.com/o3de/o3de/blob/development/Tools/LyTestTools/ly_test_tools/_internal/pytest_plugin/multi_testing.py#L47

@Kadino
Copy link
Contributor Author

Kadino commented Dec 13, 2022

Still don't quite have this narrowed down. Perhaps the pytest_pycollect_makeitem custom registration is being silently aborted by pluggy due to an interface change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/critical Critical priority. Must be actively worked on as someone's top priority right now. sig/testing Categorizes an issue or PR as relevant to SIG Testing. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant