Skip to main content

License Platforms Supported python version Build status Documentation Status codecov CodeFactor Last commit Commits since latest version

PyKiso

Optional Text

Introduction

pykiso is an integration test framework. With it, it is possible to write

  • Whitebox integration tests directly on my target device
  • Graybox integration tests to make sure the communication-link with my target device is working as expected
  • Blackbox integration tests to make sure my external device interfaces are working as expected

The project will contain:

  • The core python framework (this repository)
  • Framework plugins that are generic enough to be integrated as "native" (this repository)
  • Additional "testApps" for different targets platforms (e.g. stm32, ...) or languages (C, C++, ...) . It could be pure SW or also HW (other repositories)

Link to Eclipse Project

https://projects.eclipse.org/projects/iot.kiso-testing

Requirements

  • Python 3.10+
  • pip/poetry (used to get the rest of the requirements)

Install

pip install pykiso # Core framework
pip install pykiso[plugins] # For installing all plugins
pip install pykiso[all] # For installing all what we have to offer

Poetry is more appropriate for developers as it automatically creates virtual environments.

cd kiso-testing
poetry install --all-extras
poetry shell

Pre-Commit

To improve code-quality, a configuration of pre-commit hooks are available. The following pre-commit hooks are used:

  • ruff-format
  • flake8
  • isort
  • trailing-whitespace
  • end-of-file-fixer
  • check-docstring-first
  • check-json
  • check-added-large-files
  • check-yaml
  • debug-statements

If you don't have pre-commit installed, you can get it using pip:

pip install pre-commit

Start using the hooks with

pre-commit install

Commit message convention

Commits are sorted into multiple categories based on keywords that can occur at any position as part of the commit message. [Category] Keywords

  • [BREAKING CHANGES] BREAKING CHANGE
  • [Features] feat:
  • [Fixes] fix:
  • [Docs] docs:
  • [Styles] style:
  • [Refactors] refactor!:
  • [Performances] perf:
  • [Tests] test:
  • [Build] build:
  • [Ci] ci: Each commit is considered only once according to the order of the categories listed above. Merge commits are ignored.

The tool commitizen can help you to create commits which follows these standards.

# if not yet installed:
pip install -U commitizen==2.20.4
# helps you to create a commit:
cz commit
# or use equivalent short variant:
cz c

Generate Changelog

After you installed the dev dependencies from the pipfile you are able to autogenerate the Changelog.

invoke changelog

Usage

Once installed the application is bound to pykiso, it can be called with the following arguments:

Usage: pykiso [OPTIONS]

  Embedded Integration Test Framework - CLI Entry Point.

  TAG Filters: any additional option to be passed to the test as tag through
  the pykiso call. Multiple values must be separated with a comma.

  For example: pykiso -c your_config.yaml --branch-level dev,master --variant
  delta

Options:
  -c, --test-configuration-file FILE
                                  path to the test configuration file (in YAML
                                  format)  [required]
  -l, --log-path PATH             path to log-file or folder. If not set will
                                  log to STDOUT
  --log-level [DEBUG|INFO|WARNING|ERROR]
                                  set the verbosity of the logging
  --junit                         enables the generation of a junit report
  --text                          default, test results are only displayed in
                                  the console
  --step-report PATH              generate the step report at the specified
                                  path
  --failfast                      stop the test run on the first error or
                                  failure
  -v, --verbose                   activate the internal framework logs
  -p, --pattern TEXT              test filter pattern, e.g. 'test_suite_1.py'
                                  or 'test_*.py'. Or even more granularly
                                  'test_suite_1.py::test_class::test_name'
  --version                       Show the version and exit.
  -h, --help                      Show this message and exit.
  --logger                        Change the logger class used in pykiso, value
                                  is the import path to the logger class, example
                                  'logging.Logger'

Suitable config files are available in the examples folder.

Demo using example config

invoke run

Running the Tests

invoke test

or

pytest

Metadata

Release files for pykiso 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pykiso 1.7.0
File Size Uploaded
pykiso-1.7.0.tar.gz 189.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pykiso 1.7.0
File Interpreter ABI Platform
pykiso-1.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 460.7 kB

Release files / pykiso-1.7.0.tar.gz

Download URL pykiso-1.7.0.tar.gz
Size 189.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cb9b619b2a85f7b3603673d272f27b387cec0c3a21cf6ed72e82b5a516301140
BLAKE2b-256 checksum
How to use checksums
cd1837d9d760ae5586d418aef2d92467be615d9873f33727b05b554739fcd6fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.8.0-1036-azure

Release files / pykiso-1.7.0-py3-none-any.whl

Download URL pykiso-1.7.0-py3-none-any.whl
Size 271.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aadd10945eca180d5d5648b5b8cc40a0ae068f3ca90ec411188b209eb3cee2a
BLAKE2b-256 checksum
How to use checksums
2a6bca7b29647ce31a0dd6ef480a77d7d1e3a1a7ff2b28261f434016fcc3ee65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.12 Linux/6.8.0-1036-azure

Release history Release notifications | RSS feed

This release

1.7.0 This release

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.31.3

2 release files

0.31.2

2 release files

0.31.1

2 release files

0.31.0

2 release files

0.29.4

2 release files

0.29.3

2 release files

0.29.0

2 release files

0.28.1

2 release files

0.28.0

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.22.2

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.1

2 release files

0.21.0

2 release files

0.20.2

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.0

2 release files

0.16.0

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page