Module: check_mk
Branch: master
Commit: 48dc7ef8094cc6eabe60576d36243041e053d890
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=48dc7ef8094cc6…
Author: Moritz Kiemer <mo(a)mathias-kettner.de>
Date: Tue Jun 19 11:35:44 2018 +0200
Add two assert functions to checktestlib
(and apply them in test_mbg_lantime_ng_refclock.py)
Change-Id: I5a82d27d7872f1f58d8292ee3db9bd4737764723
---
tests/unit/checks/checktestlib.py | 32 +++++++++++++++++++++++
tests/unit/checks/test_mbg_lantime_ng_refclock.py | 25 +++++++++---------
2 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/tests/unit/checks/checktestlib.py b/tests/unit/checks/checktestlib.py
index 046ecce..7370b1e 100644
--- a/tests/unit/checks/checktestlib.py
+++ b/tests/unit/checks/checktestlib.py
@@ -163,6 +163,24 @@ class CheckResult(object):
return perfdata
+def assertCheckResultsEqual(actual, expected):
+ """
+ Compare two (Basic)CheckResults.
+
+ This gives more helpful output than 'assert actual == expected'
+ """
+ if isinstance(actual, BasicCheckResult):
+ assert isinstance(expected, BasicCheckResult)
+ assert actual == expected, "%s != %s" % (actual, expected)
+
+ else:
+ assert isinstance(actual, CheckResult)
+ assert isinstance(expected, CheckResult)
+ assert len(actual.subresults) == len(expected.subresults)
+ for suba, sube in zip(actual.subresults, expected.subresults):
+ assert suba == sube, "%r != %r" % (suba, sube)
+
+
class DiscoveryEntry(Tuploid):
"""A single entry as returned by the discovery (or in oldspeak:
inventory) function."""
@@ -209,3 +227,17 @@ class DiscoveryResult(object):
def __repr__(self):
return "DiscoveryResult(%r)" % map(repr, self)
+
+def assertDiscoveryResultsEqual(actual, expected):
+ """
+ Compare two DiscoveryResults.
+
+ This gives more helpful output than 'assert actual == expected'
+ """
+ assert isinstance(actual, DiscoveryResult)
+ assert isinstance(expected, DiscoveryResult)
+ assert len(actual.entries) == len(expected.entries)
+ for enta, ente in zip(actual, expected):
+ assert enta == ente, "%r != %r" % (enta, ente)
+
+
diff --git a/tests/unit/checks/test_mbg_lantime_ng_refclock.py
b/tests/unit/checks/test_mbg_lantime_ng_refclock.py
index 3344631..4e2727c 100644
--- a/tests/unit/checks/test_mbg_lantime_ng_refclock.py
+++ b/tests/unit/checks/test_mbg_lantime_ng_refclock.py
@@ -1,5 +1,6 @@
import pytest
-from checktestlib import BasicCheckResult, CheckResult
+from checktestlib import DiscoveryResult, assertDiscoveryResultsEqual, \
+ BasicCheckResult, CheckResult, assertCheckResultsEqual
pytestmark = pytest.mark.checks
@@ -10,13 +11,13 @@ meinberg_lantime_5 = [[u'1', u'14', u'3',
u'1', u'150', u'6', u'8', u'0', u'0',
@pytest.mark.parametrize("info,expected", [
- (meinberg_lantime_1, []), # GPS clocks are not covered here
- (meinberg_lantime_2, [('1', None)]),
+ (meinberg_lantime_1, DiscoveryResult([])), # GPS clocks are not covered here
+ (meinberg_lantime_2, DiscoveryResult([('1', None)])),
])
def test_discovery_mbg_lantime_ng_refclock(check_manager, info, expected):
check = check_manager.get_check("mbg_lantime_ng_refclock")
- discovery = list(check.run_discovery(info))
- assert discovery == expected
+ discovery = DiscoveryResult(check.run_discovery(info))
+ assertDiscoveryResultsEqual(discovery, expected)
@pytest.mark.parametrize("info,item,params,expected", [
@@ -29,18 +30,18 @@ def test_discovery_mbg_lantime_ng_refclock(check_manager, info,
expected):
def test_check_mbg_lantime_ng_refclock(check_manager, info, item, params, expected):
check = check_manager.get_check("mbg_lantime_ng_refclock")
result = CheckResult(check.run_check(item, params, info))
- assert result == expected
+ assertCheckResultsEqual(result, expected)
@pytest.mark.parametrize("info,expected", [
- (meinberg_lantime_1, [('1',
'mbg_lantime_refclock_default_levels')]),
- (meinberg_lantime_2, []), # don't discover GPS clocks
- (meinberg_lantime_5, [('1',
'mbg_lantime_refclock_default_levels')]),
+ (meinberg_lantime_1, DiscoveryResult([('1',
'mbg_lantime_refclock_default_levels')])),
+ (meinberg_lantime_2, DiscoveryResult([])), # don't discover GPS clocks
+ (meinberg_lantime_5, DiscoveryResult([('1',
'mbg_lantime_refclock_default_levels')])),
])
def test_discovery_mbg_lantime_ng_refclock_gps(check_manager, info, expected):
check = check_manager.get_check("mbg_lantime_ng_refclock.gps")
- discovery = list(check.run_discovery(info))
- assert discovery == expected
+ discovery = DiscoveryResult(check.run_discovery(info))
+ assertDiscoveryResultsEqual(discovery, expected)
@pytest.mark.parametrize("info,item,params,expected", [
@@ -58,4 +59,4 @@ def test_discovery_mbg_lantime_ng_refclock_gps(check_manager, info,
expected):
def test_check_mbg_lantime_ng_refclock_gps(check_manager, info, item, params, expected):
check = check_manager.get_check("mbg_lantime_ng_refclock.gps")
result = CheckResult(check.run_check(item, params, info))
- assert result == expected
+ assertCheckResultsEqual(result, expected)