Copyright (C) 2021-2023 Rafael Leira
Copyright (C) 2021 Truenas team
Copyright (C) 2015 Marc Herndon
To run the tests, or to contribute to pySMART, you will have to set up a development environment.
Our development environment will consist of a virtual environment, with the installation and development dependencies installed.
See the Python documentation for more on creating and using virtual environment.
This document will assume a Linux environment.
The steps are:
- Clone this repository, go there
- Create a virtualenv and activate it
- Install the dependencies
- Run the tests
-
Go where you want to clone the repository, clone it, go there:
$ cd <wherever you want to clone the repository> $ git clone https://github.com/truenas/py-SMART Cloning into 'py-SMART'... remote: Enumerating objects: 2243, done. remote: Counting objects: 100% (839/839), done. remote: Compressing objects: 100% (362/362), done. remote: Total 2243 (delta 544), reused 743 (delta 463), pack-reused 1404 Receiving objects: 100% (2243/2243), 674.95 KiB | 2.38 MiB/s, done. Resolving deltas: 100% (1518/1518), done. $ cd py-SMART
-
Create a virtualenv and activate it
$ python -m venv .venv $ source .venv/bin/activate (.venv) $
We use
.venv
for the directory name of the virtualenv by convention. Any other legal directory name is fine; we'll assume.venv
. -
Update pip and setuptools
$(.venv) $ python -m pip install --upgrade pip setuptools Requirement already satisfied: pip in <...>/.venv/lib/python3.12/site-packages (23.1) Collecting pip Using cached pip-24.0-py3-none-any.whl (2.1 MB) Requirement already satisfied: setuptools in <...>/.venv/lib/python3.12/site-packages (68.0.0) Collecting setuptools Downloading setuptools-69.5.1-py3-none-any.whl (894 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 894.6/894.6 kB 6.1 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 68.0.0 Uninstalling setuptools-68.0.0: Successfully uninstalled setuptools-68.0.0 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-24.0 setuptools-69.5.1
-
Install the package including development dependencies
$(.venv) $ python -m pip install --editable .[dev]
-
Run the tests
$(.venv) $ pytest =============== test session starts ===================================== platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.5.0 rootdir: <...>/py-SMART configfile: pyproject.toml plugins: cov-5.0.0 collected 184 items < test file names, lots and lots of dots> =============== 184 passed in 0.99s =====================================
That's it -- you're ready to start developing on pySMART!