A pytest plugin to manage interfacing with libiio contexts
Project description
A pytest plugin to manage interfacing with libiio contexts
pytest-libiio is pytest plugin to manage interfacing with libiio contexts. This plugin is handy for leveraging the (new) zeroconf features of libiio to find, filter, and map libiio contexts to tests. It was created for pyadi-iio testing but is used in other applications that need an organized way to handle libiio contexts without hardcoding URIs or lots of boilerplate code.
Requirements
libiio and pylibiio
pytest
pyyaml
For development the following are also needed:
tox
pytest-mock
pre-commit
isort
flake8
codespell
black
Installation
You can install “pytest-libiio” via pip from PyPI:
$ pip install pytest-libiio
Usage
This plugin is used to make the access of libiio contexts easier and to provide a unified API through fixtures.
Accessing contexts
Get list of context descriptions of all found contained
import pytest
import iio
def test_libiio_device(context_desc):
hardware = ["pluto", "adrv9361", "fmcomms2"]
for ctx_desc in context_desc:
if ctx_desc["hw"] in hardware:
ctx = iio.Context(ctx_desc["uri"])
if not ctx:
pytest.skip("No required hardware found")
Require certain hardware through marks
import pytest
import iio
@pytest.mark.iio_hardware("adrv9361")
def test_libiio_device(context_desc):
for ctx_desc in context_desc:
ctx = iio.Context(ctx_desc["uri"])
...
Future ideas
Mock testing is common with libiio’s python library since hardware is needed otherwise. In future releases we hope to extend features in pytest-mock through this plugin to make mocking libiio more streamlined.
Contributing
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the BSD-3 license, “pytest-libiio” is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pytest-libiio-0.0.21.tar.gz
.
File metadata
- Download URL: pytest-libiio-0.0.21.tar.gz
- Upload date:
- Size: 89.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b0c1b41584f51d7a415456c65c8de2a2732a7d2a6abfa2e3ba4de3ded95e93e |
|
MD5 | 64ccd9297a2335da4cb4bf6e626bfcec |
|
BLAKE2b-256 | 4ea81b776d42d8a9dd20812976174393cf6ddbf4a88261ee39bcafb889e3715f |