pytest-zeebe
Pytest fixtures for testing Camunda 8 processes in Python using a Zeebe test engine.
🚀 What does it do?
This package provides a set of fixtures to set up Zeebe process tests for Python in no time:
- automatically spins up a stripped-down Zeebe engine per file/module (same as used by zeebe-process-test)
- resets engine state before every test
- injects a ZeebeTestClient to drive the process
- (optionally) injects a ZeebeTestEngine to await idle state or access raw zeebe records
- provides rich assertions for the process instance (goal: equal to zeebe-process-test BpmnAssertions)
Install
pip install pytest-zeebe
Example Usage
The engine is reset before every test, so you can create a fixture to deploy your process automatically:
@pytest.fixture(autouse=True)
def deploy(zeebe_test_client: ZeebeTestClient):
zeebe_test_client.deploy_process("test.bpmn")
With the process deployed, you can start it, complete tasks and make assertions as usual:
def test(zeebe_test_client: ZeebeTestClient):
# given
variables = {
"var": "A"
}
# when
# -> start
process_instance = zeebe_test_client.create_process_instance("TestProcess", variables=variables)
# -> complete Task A
zeebe_test_client.complete_task("taskA")
assert_that(process_instance).is_waiting_at_elements("TaskC")
# -> complete Task C
zeebe_test_client.complete_task("taskC", variables={"resultC": True})
# then
assert_that(process_instance) \
.is_completed() \
.has_passed_elements_in_order("StartEvent_1", "TaskA", "TaskC", "EndEvent_1") \
.has_variable_with_value("var", "A") \
.has_variable_with_value("resultC", True) \
.has_no_incidents()
Known Issues
This package ships with its own grpc zeebe client. Due to the inner workings of protobuf, this will lead to an unresolvable conflict if you also import code from another library that also registers protobuf descriptors for the zeebe gateway protocol (like pyzeebe). This is no issue if you test the process by itself or - for integration tests - start your app in a dedicated process.
License
This library is developed under
Sponsors and Customers
Metadata
Release files for pytest-zeebe 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pytest_zeebe-0.1.2.tar.gz | 34.7 kB | Without provenance | Details for pytest_zeebe-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytest_zeebe-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for pytest_zeebe-0.1.2-py3-none-any.whl |
Total release size: 76.1 kB
Release files / pytest_zeebe-0.1.2.tar.gz
| Download URL | pytest_zeebe-0.1.2.tar.gz |
|---|---|
| Size | 34.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e01a38c589eb6a03f464e8bd01869cbb6c10868c29b19d3e1950581fa67417e0
|
|
BLAKE2b-256 checksum How to use checksums |
e6956cf1bfebc73d12847bc7c07bed261027a68f7f8d8d65d8e69bafd6d04c71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.11.3 Linux/6.2.0-1019-azure
|
Release files / pytest_zeebe-0.1.2-py3-none-any.whl
| Download URL | pytest_zeebe-0.1.2-py3-none-any.whl |
|---|---|
| Size | 41.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc56c2fc3f94c2e21833df434b2232b7a0434ecb749ad8a0c416fe14751827f1
|
|
BLAKE2b-256 checksum How to use checksums |
c6a7e4b4be8bd81f0d50b0b7921faf5bad460c3a0826061ac21257e807880c04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.11.3 Linux/6.2.0-1019-azure
|
Security for pytest-zeebe 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.