-
Notifications
You must be signed in to change notification settings - Fork 182
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
chore: add typing hints to pytest components #1478
base: master
Are you sure you want to change the base?
chore: add typing hints to pytest components #1478
Conversation
b9f455c
to
200d915
Compare
labgrid/config.py
Outdated
@@ -5,6 +5,7 @@ | |||
""" | |||
import os | |||
import warnings | |||
from typing import Dict |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does Labgrid sort its imports?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's the way ruff
sorts imports with the current configuration in this repo.
Would you prefer them to be in a different order?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I suppose I just don't understand how the ordering works
Perhaps 'warnings' is consider an internal module and 'typing' is not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see. Ruff puts from
imports after imports without the from
keyword.
"pytest_configure", | ||
"pytest_collection_modifyitems", | ||
"pytest_cmdline_main", | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be in a separate commit?
@@ -74,7 +80,8 @@ def env(request, record_testsuite_property): | |||
try: | |||
target = env.get_target(target_name) | |||
except UserError as e: | |||
pytest.exit(e) | |||
pytest.exit(str(e)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change seems to be unrelated to typing? Or does it fix a bug? If so, best to put the bug-fixes first, in one or more separate commits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, this fixes that the wrong type of the reason
parameter is passed to the pytest.exit()
function: pytest.exit.
tests/test_fixtures.py
Outdated
def test_config(short_test): | ||
with pexpect.spawn(f'pytest --traceconfig {short_test}') as spawn: | ||
with pexpect.spawn(f"pytest --traceconfig {short_test}") as spawn: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is Labgrid supposed to use " instead of ' ? I see both, I have been wondering
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I'll make sure these things remain untouched in this PR.
Personally, I'd prefer them to be consistent (whether it's '
or "
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. I much prefer ' since it is easier to distinguish as small font sizes, but Labgrid seems to use both
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just updated the pyproject.toml
file to contain:
[tool.ruff.format]
quote-style = "single"
Actually, I'd suggest to re-format the whole code base. But this should go into a dedicated PR in my view.
In this PR, however, I already re-formatted the tests/test_fixtures.py
file to this new formatting rule anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, this does not work yet. All sources would have to be re-formatted this way before passing CI checks.
As a quick workaround I applied this setting to the tests/test_fixtures.py
file, but removed it from the pyproject.toml
file.
CHANGES.rst
Outdated
@@ -17,6 +17,7 @@ more performant and the import times are shorter. | |||
New Features in 24.1 | |||
~~~~~~~~~~~~~~~~~~~~ | |||
- All components can be installed into the same virtualenv again. | |||
- The ``pytest`` specific parts of the labgrid framework now have typing hints. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pytest
-specific
79fb518
to
7df770f
Compare
Codecov ReportAttention: Patch coverage is
✅ All tests successful. No failed tests found.
Additional details and impacted files@@ Coverage Diff @@
## master #1478 +/- ##
========================================
+ Coverage 56.2% 56.5% +0.3%
========================================
Files 170 170
Lines 13247 13261 +14
========================================
+ Hits 7449 7502 +53
+ Misses 5798 5759 -39
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
@sjg20, could you please review my PR again? All your comments should be implemented/resolved now. To be honest, I'd love to see this PR merged into labgrid as it improves the code navigation and static code analysis experience quite a lot. |
Add this logging level without changing Python’s internal logging module. This maintains architectural integrity and clarifies that the level is labgrid-specific. Signed-off-by: Rainer Poisel <[email protected]>
Signed-off-by: Rainer Poisel <[email protected]>
Signed-off-by: Rainer Poisel <[email protected]>
Signed-off-by: Rainer Poisel <[email protected]>
…nents Signed-off-by: Rainer Poisel <[email protected]>
Signed-off-by: Rainer Poisel <[email protected]>
7df770f
to
a8f887c
Compare
Description
This PR introduces Python typing hints to the
pytest
specific components of the labgrid framework. These additions can be seen as initial steps towards enhancing the overall code navigation experience and improving the effectiveness of static code analysis tools.Checklist