13d9be733f
* Add ut for lisarunner, and bug fixes 1. add ut for lisa runner 2. fix bugs found by ut. 3. remove some unused code. 4. improve testability. 5. move EnvironmentSpace from shema to env, because it's confused in schema folder. As it's not a schema. 6. other minor fixes. |
||
---|---|---|
.github | ||
examples | ||
lisa | ||
.flake8 | ||
.gitattributes | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE-2.0.txt | ||
README.md | ||
poetry.lock | ||
pyproject.toml |
README.md
Linux Integration Services Automation 3.0 (LISAv3)
LISA is a Linux test automation framework with built-in test cases to verify the quality of Linux distributions on multiple platforms (such as Azure, On-prem HyperV, and Linux bare metal).
This version (v3) is a brand new implementation in Python 3, supports running on Windows and Linux distros.
Getting Started
Install Python 3
Install Python 3.8 from Linux distribution’s package
repositories, or python.org. We also need gcc
and
the libpython
headers for the usjon
package.
On Ubuntu 18.04 and 20.04:
sudo apt install git python3.8 libpython3.8-dev python3-distutils python3-apt gcc
NOTE: If you are using WSL, installing Poetry on both Windows and Linux may
cause both platforms’ versions of Poetry to be on your path, as Windows binaries
are mapped into WSL’s PATH
. This means that the Linux poetry
binary must
appear in your PATH
before the Windows version, or this error will appear:
/usr/bin/env: ‘python\r’: No such file or directory
Install Poetry
This is a temporary workaround! The currently released version of Poetry
(1.0.10) cannot handle the azure-identity
package, so we need to install the
preview version (1.1.0b2).
On Linux (or WSL):
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 - --preview --version 1.1.0b2
source $HOME/.poetry/env
On Windows (in PowerShell):
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - --preview --version 1.1.0a2
# the path can be added to system, so it applies to every terminal.
$env:PATH += ";$env:USERPROFILE\.poetry\bin"
Install Python packages
Then use Poetry to install LISAv3's Python package dependencies:
git clone -b main https://github.com/LIS/LISAv2.git
cd LISAv2
poetry install
To obtain the path of the Poetry virtual environment setup for LISA (where the isolated Python installation and packages are located), run:
poetry env list --full-path
Run LISAv3
Run LISAv3 using Poetry’s environment:
poetry run python lisa/main.py
Editor Setup
Install and enable ShellCheck to find bash errors locally.
Visual Studio Code
First, click the Python version in the bottom left, then enter the path emitted by the command above. This will point Code to the Poetry virtual environment.
Make sure below settings are in root level of .vscode/settings.json
{
"python.analysis.typeCheckingMode": "strict",
"python.formatting.provider": "black",
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": true,
"python.linting.pylintEnabled": false,
"editor.formatOnSave": true,
"python.linting.mypyArgs": [
"--strict",
"--namespace-packages",
"--show-column-numbers",
],
"python.sortImports.path": "isort",
"python.analysis.useLibraryCodeForTypes": false,
"python.analysis.autoImportCompletions": false,
"files.eol": "\n",
}
Emacs
Use the pyvenv package:
(use-package pyvenv
:ensure t
:hook (python-mode . pyvenv-tracking-mode))
Then run M-x add-dir-local-variable RET python-mode RET pyvenv-activate RET <path/to/virtualenv>
where the value is the path given by the command above.
This will create a .dir-locals.el
file which looks like this:
;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")
((python-mode . ((pyvenv-activate . "~/.cache/pypoetry/virtualenvs/lisa-s7Q404Ij-py3.8"))))