An open hardware test framework.
Project description
LibreHTF
An open hardware test framework.
Install
PyPI
Install and update using pip:
pip install -U librehtf
Repository
When using git, clone the repository and change your present working directory.
git clone http://github.com/mcpcpc/librehtf
cd librehtf/
Create and activate a virtual environment.
python3 -m venv venv
source venv/bin/activate
Install LibreHTF to the virtual environment.
pip install -e .
Commands
db-init
The Sqlite3 database can be initialized or re-initialized with the following command.
flask --app librehtf init-db
Deployment
Before deployment, we strongly encourage you to override the
default SECRET_KEY
variable. This can be done by creating a
conf.py
file and placing it in the same root as the instance (i.e. typically where the SQLite database resides).
SECRET_KEY = “192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf“
There are a number of ways to generate a secret key value. The simplest would be to use the built-in secrets Python library.
$ python -c ‘import secrets; print(secrets.token_hex())’
‘192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf’
Waitress
Production WSGI via waitress.
pip install waitress
waitress-serve --call librehtf:create_app
Test
python3 -m unittest
Run with coverage report.
coverage run -m unittest
coverage report
coverage html # open htmlcov/index.html in a browser
Authorization
OpenHTF provides a simple role-based access control (RBAC) for protecting both APIs and environment configuration. There are three levels of user access controls: administrator, functional and public. Responsibilities range from least restrictive to most restrictive, respectively.
Function | Description | Evaluation | API Access | Management |
---|---|---|---|---|
Administrator | An individual for system administration and user management. | Yes | Yes | Yes |
Functional | A non-human interface, typically for machine integration. | Yes | Yes | Limited |
Public | Typically an operator or technician responsible for test execution. | Yes | No | No |
Nomenclature
OpenHTF is architected to allow inherent branching of tests. At the core, there are three tiers of organization: device, test and task.
Device
Devices refer to specific to hardware versions or product configurations. These are typically descriptive in nature and are useful when organizing hardware test interfaces that are intended to be used with multiple product offerings. Each device may have one or multiple test configurations.
Test
Tests are a collection of similar or related tasks. Thus, executing a test will execute all collected task operators.
Task
The smallest unitdiscretized observation for a given test. The result of running a task can either be informative or comparative. When comparing the result of a task, the resulting outcome either yields PASS or FAIL.
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
Built Distribution
File details
Details for the file librehtf-0.0.3.tar.gz
.
File metadata
- Download URL: librehtf-0.0.3.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3437abb80cbbdca97954680c38b21caa47ae0a6ce78d26faa0aee57fe3a7457 |
|
MD5 | b9678fd84746df7bd46b2f0d05d7711b |
|
BLAKE2b-256 | 79875598f2d4d88bfffbebf8a642c577d6bbaf289ec1812300ab425549891d43 |
File details
Details for the file librehtf-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: librehtf-0.0.3-py3-none-any.whl
- Upload date:
- Size: 32.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c761da75549d0ad800c46200fb77f994043096b87e941e16acf4ac070254d65 |
|
MD5 | 92a9390df1ef7c55b6c2766ea029bee7 |
|
BLAKE2b-256 | 172dcc6b407bdb9c378c35cd63aa931398eac5a529dae1286a19eb9e9130ab71 |