This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

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.

Release History

Release History

0.1.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pytest_check_mk-0.1.1-py2.py3-none-any.whl (8.9 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Nov 19, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting