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

tests: hil: scripts: package plugins in directories #749

Merged
merged 1 commit into from
Feb 25, 2025

Conversation

sam-golioth
Copy link
Contributor

We were previously packaging our HIL pytest plugins as collections of python scripts without any directory hierarchy. This meant that every python file in the package was placed in the root of the site_packages directory. If any other package did the same and had names that conflicted, the files would be overwritten. For example these two plugins both contain a file named plugin.py and both attempt to place that file at the root of the site packages directory. Normal practice in python is to create a directory for each package, and that's what's done in this commit.

Before:

/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/_black_version.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/allure.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/appdirs.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/bmpboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/board.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/docopt.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/esp32_devkitc_wrover.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/espboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/espidfboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/ghp_import.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/imagesize.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/ipaddress.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/jlinkboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/libusb1.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/linuxboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/mccabe.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/mimxrt1024evk.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/mypy_extensions.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/native_sim.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/ncsboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/nordicboard.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/nrf52840dk.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/nrf9160dk.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/parse.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/plugin.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/py.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/pycodestyle.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/pytest_timeout.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/rak5010.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/reedsolo.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/setuptools_behave.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/sh.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/six.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/socks.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/sockshandler.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/typing_extensions.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/yaml_env_tag.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/zephyrboard.py

After:

/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/_black_version.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/allure.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/appdirs.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/docopt.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/ghp_import.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/imagesize.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/ipaddress.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/libusb1.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/mccabe.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/mypy_extensions.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/parse.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/py.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/pycodestyle.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/pytest_timeout.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/reedsolo.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/setuptools_behave.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/sh.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/six.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/socks.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/sockshandler.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/typing_extensions.py
/Users/samfriedman/miniconda3/envs/golioth/lib/python3.11/site-packages/yaml_env_tag.py

@sam-golioth sam-golioth self-assigned this Feb 24, 2025
Copy link

github-actions bot commented Feb 24, 2025

Visit the preview URL for this PR (updated for commit 31947cd):

https://golioth-firmware-sdk-doxygen-dev--pr749-pytest-plugin-lrmi3j1l.web.app

(expires Tue, 04 Mar 2025 01:10:58 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: a9993e61697a3983f3479e468bcb0b616f9a0578

We were previously packaging our HIL pytest plugins as collections
of python scripts without any directory hierarchy. This meant that
every python file in the package was placed in the root of the
site_packages directory. If any other package did the same and had
names that conflicted, the files would be overwritten. For example
these two plugins both contain a file named plugin.py and both
attempt to place that file at the root of the site packages
directory. Normal practice in python is to create a directory for
each package, and that's what's done in this commit.

Signed-off-by: Sam Friedman <sam@golioth.io>
@sam-golioth sam-golioth force-pushed the pytest_plugin_packages branch from 9d05377 to 31947cd Compare February 25, 2025 01:09
Copy link

Code Coverage

Code Coverage

Package Line Rate Branch Rate Health
include.golioth 75% 50%
port.linux 62% 34%
port.utils 58% 46%
port.zephyr 53% 22%
src 67% 30%
Summary 66% (2719 / 4118) 30% (1128 / 3736)

Copy link

codecov bot commented Feb 25, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

see 2 files with indirect coverage changes

@sam-golioth sam-golioth merged commit 731965f into main Feb 25, 2025
127 of 145 checks passed
@sam-golioth sam-golioth deleted the pytest_plugin_packages branch February 25, 2025 02:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants