python-pytest-check_mk
Plugin for py.test to test Check_MK checks.
Usage
The following example contains a test suite for the foobar check contained in the Check_MK installation (see share/doc/check_mk/skeleton_check). The check file needs to be named after its agent section, i.e. foobar.
Directory layout
├── agents
│ └── plugins
│ └── foobar_linux
├── checks
│ └── foobar
└── test
└── test_foobar.py
Test agent
All executable files in the agents directory can be executed with the agents fixture:
def test_agent_plugin(agent):
assert agents['plugins/foobar_linux'].run() == '<<<foobar>>>\nFOO BAR\n'
It is also possible to pass commandline arguments to the agent or agent plugin:
def test_fritzbox_agent(agents):
assert '<<<fritz>>>' in agents['special/agent_fritzbox'].run('--timeout', '20', 'fritz.box')
Test check
Within a single test file one check file can be tested. The name of the check file is set with the test_for module-level variable.
from pytest_check_mk import OK, WARNING, CRITICAL, UNKNOWN
test_for = 'foobar'
sample_plugin_output = '''
<<<foobar>>>
FOO BAR
'''
def test_inventory(checks):
assert checks['foobar'].inventory(sample_plugin_output) == []
def test_check(checks):
item = None
params = None
assert checks['foobar'].check(item, params, sample_plugin_output) == (UNKNOWN, 'UNKNOWN - Check not implemented')
def test_settings(checks):
assert checks['foobar'].service_description == 'FOOBAR'
assert not checks['foobar'].has_perfdata
Test check with agent data
There is a sort of ‘ensure everything works together’ assertion. It calls both inventory and check function with a given agent output and checks that the return values match the expected format.
from pytest_check_mk.assertions import assert_inventory_and_check_works_with_check_output
test_for = 'foobar'
def test_check_with_agent_output(agent, checks):
output = agents['plugins/foobar_linux'].run()
assert_inventory_and_check_works_with_check_output(checks['foobar'], output)
License
This software is licensed under GPLv2.
Metadata
Release files for pytest-check-mk 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_check_mk-0.1.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Release files / pytest_check_mk-0.1.1-py2.py3-none-any.whl
| Download URL | pytest_check_mk-0.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
e8fc09a79cb3129adef68edab20cf01a2ce22614a8a2cadb671e5b69aa281507
|
|
BLAKE2b-256 checksum How to use checksums |
2c5090765e135ff55a6ffad50309992d643d8e3c7307e8013469a20d6a33788b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pytest-check-mk 0.1.1
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.