Module: check_mk
Branch: master
Commit: 352ae03509776d09bf45ead8d931b056e97527af
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=352ae03509776d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Apr 4 12:20:41 2019 +0200
Moved unit test to correct place
Change-Id: I28f771e219dcad7ff29dc9fd4b155fe09c443e80
---
tests/integration/cmk_base/test_data_sources.py | 107 ------------------------
tests/unit/cmk_base/test_data_sources_unit.py | 104 +++++++++++++++++++++++
2 files changed, 104 insertions(+), 107 deletions(-)
diff --git a/tests/integration/cmk_base/test_data_sources.py
b/tests/integration/cmk_base/test_data_sources.py
index e1a4401..12c256e 100644
--- a/tests/integration/cmk_base/test_data_sources.py
+++ b/tests/integration/cmk_base/test_data_sources.py
@@ -450,110 +450,3 @@ def test_automation_diag_host_caching(test_cfg, monkeypatch):
# Keepalive check
# Keepalive discovery
# TODO: Check the caching age for cluster hosts
-
-#
-# UNIT TESTS
-#
-
-
-# Automatically refresh caches for each test
-(a)pytest.fixture(scope="function")
-def clear_config_caches(monkeypatch):
- import cmk_base
- import cmk_base.caching
- monkeypatch.setattr(cmk_base, "config_cache",
cmk_base.caching.CacheManager())
- monkeypatch.setattr(cmk_base, "runtime_cache",
cmk_base.caching.CacheManager())
-
-
-def test_data_sources_of_hosts(clear_config_caches, monkeypatch):
- hosts = [
- # Configs from 1.4
- ("agent-host-14", {
- "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
- "sources": ['TCPDataSource',
'PiggyBackDataSource'],
- }),
- ("ds-host-14", {
- "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
- "sources": ['DSProgramDataSource',
'PiggyBackDataSource'],
- }),
- ("special-host-14", {
- "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
- "sources": ['SpecialAgentDataSource',
'PiggyBackDataSource'],
- }),
- ("ping-host-14", {
- "tags": "lan|ip-v4|ping|ip-v4-only|prod",
- "sources": ['PiggyBackDataSource'],
- }),
- ("snmp-host-14", {
- "tags": "lan|ip-v4|snmp|snmp-only|ip-v4-only|prod",
- "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
- }),
- ("snmpv1-host-14", {
- "tags": "lan|ip-v4|snmp|snmp-v1|ip-v4-only|prod",
- "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
- }),
- ("dual-host-14", {
- "tags": "lan|ip-v4|snmp|tcp|ip-v4-only|prod|snmp-tcp",
- "sources": ['TCPDataSource', 'SNMPDataSource',
'PiggyBackDataSource'],
- }),
- # From current WATO
- ("agent-host", {
- "tags":
"lan|ip-v4|cmk-agent|no-snmp|tcp|ip-v4-only|prod",
- "sources": ['TCPDataSource',
'PiggyBackDataSource'],
- }),
- ("ping-host", {
- "tags":
"lan|ip-v4|ping|no-snmp|ip-v4-only|no-agent|prod",
- "sources": ['PiggyBackDataSource'],
- }),
- ("snmp-host", {
- "tags":
"lan|ip-v4|snmp|snmp-v2|ip-v4-only|no-agent|prod",
- "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
- }),
- ("snmpv1-host", {
- "tags":
"lan|ip-v4|snmp|snmp-v1|ip-v4-only|no-agent|prod",
- "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
- }),
- ("dual-host", {
- "tags":
"lan|ip-v4|cmk-agent|snmp|snmp-v2|ip-v4-only|tcp|prod",
- "sources": ['TCPDataSource', 'SNMPDataSource',
'PiggyBackDataSource'],
- }),
- ("all-agents-host", {
- "tags":
"lan|all-agents|ip-v4|no-snmp|tcp|ip-v4-only|prod",
- "sources": ['DSProgramDataSource',
'SpecialAgentDataSource', 'PiggyBackDataSource'],
- }),
- ("all-special-host", {
- "tags":
"lan|ip-v4|no-snmp|tcp|ip-v4-only|special-agents|prod",
- "sources": ['SpecialAgentDataSource',
'PiggyBackDataSource'],
- }),
- ]
-
- import cmk_base.data_sources
-
- all_hosts = [("%s|%s" % (name, h["tags"])) for name, h in hosts]
- monkeypatch.setattr(config, "all_hosts", all_hosts)
-
- import copy
- changed_hosts_paths = copy.deepcopy(config.host_paths)
- for name, _h in hosts:
- changed_hosts_paths[name] = "/"
- monkeypatch.setattr(config, "host_paths", changed_hosts_paths)
-
- monkeypatch.setattr(config, "datasource_programs", [
- ('echo 1', [], ['ds-host-14', 'all-agents-host',
'all-special-host'], {}),
- ])
-
- monkeypatch.setitem(config.special_agents, "jolokia", [
- ({}, [], [
- 'special-host-14',
- 'all-agents-host',
- 'all-special-host',
- ], {}),
- ])
-
- config.get_config_cache().initialize()
-
- for hostname, host_attrs in hosts:
- sources = cmk_base.data_sources.DataSources(hostname, "127.0.0.1")
- source_names = [s.__class__.__name__ for s in sources.get_data_sources()]
- assert host_attrs["sources"] == source_names, \
- "Wrong sources for %s" % hostname
diff --git a/tests/unit/cmk_base/test_data_sources_unit.py
b/tests/unit/cmk_base/test_data_sources_unit.py
index 7d7bf91..4bc3e7b 100644
--- a/tests/unit/cmk_base/test_data_sources_unit.py
+++ b/tests/unit/cmk_base/test_data_sources_unit.py
@@ -1,5 +1,11 @@
+# pylint: disable=redefined-outer-name
+
+import copy
import pytest
+import cmk_base
+import cmk_base.caching
+import cmk_base.data_sources
import cmk_base.data_sources.abstract
import cmk_base.data_sources.programs
import cmk_base.data_sources.snmp
@@ -143,3 +149,101 @@ def test_get_command_line_and_stdin(monkeypatch, info_func_result,
expected):
command_line, command_stdin = ds._get_command_line_and_stdin()
assert command_line == agent_prefix + expected[0]
assert command_stdin == expected[1]
+
+
+# Automatically refresh caches for each test
+(a)pytest.fixture(scope="function")
+def clear_config_caches(monkeypatch):
+ monkeypatch.setattr(cmk_base, "config_cache",
cmk_base.caching.CacheManager())
+ monkeypatch.setattr(cmk_base, "runtime_cache",
cmk_base.caching.CacheManager())
+
+
+def test_data_sources_of_hosts(clear_config_caches, monkeypatch):
+ hosts = [
+ # Configs from 1.4
+ ("agent-host-14", {
+ "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
+ "sources": ['TCPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("ds-host-14", {
+ "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
+ "sources": ['DSProgramDataSource',
'PiggyBackDataSource'],
+ }),
+ ("special-host-14", {
+ "tags": "lan|cmk-agent|ip-v4|tcp|ip-v4-only|prod",
+ "sources": ['SpecialAgentDataSource',
'PiggyBackDataSource'],
+ }),
+ ("ping-host-14", {
+ "tags": "lan|ip-v4|ping|ip-v4-only|prod",
+ "sources": ['PiggyBackDataSource'],
+ }),
+ ("snmp-host-14", {
+ "tags": "lan|ip-v4|snmp|snmp-only|ip-v4-only|prod",
+ "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("snmpv1-host-14", {
+ "tags": "lan|ip-v4|snmp|snmp-v1|ip-v4-only|prod",
+ "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("dual-host-14", {
+ "tags": "lan|ip-v4|snmp|tcp|ip-v4-only|prod|snmp-tcp",
+ "sources": ['TCPDataSource', 'SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ # From current WATO
+ ("agent-host", {
+ "tags":
"lan|ip-v4|cmk-agent|no-snmp|tcp|ip-v4-only|prod",
+ "sources": ['TCPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("ping-host", {
+ "tags":
"lan|ip-v4|ping|no-snmp|ip-v4-only|no-agent|prod",
+ "sources": ['PiggyBackDataSource'],
+ }),
+ ("snmp-host", {
+ "tags":
"lan|ip-v4|snmp|snmp-v2|ip-v4-only|no-agent|prod",
+ "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("snmpv1-host", {
+ "tags":
"lan|ip-v4|snmp|snmp-v1|ip-v4-only|no-agent|prod",
+ "sources": ['SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("dual-host", {
+ "tags":
"lan|ip-v4|cmk-agent|snmp|snmp-v2|ip-v4-only|tcp|prod",
+ "sources": ['TCPDataSource', 'SNMPDataSource',
'PiggyBackDataSource'],
+ }),
+ ("all-agents-host", {
+ "tags":
"lan|all-agents|ip-v4|no-snmp|tcp|ip-v4-only|prod",
+ "sources": ['DSProgramDataSource',
'SpecialAgentDataSource', 'PiggyBackDataSource'],
+ }),
+ ("all-special-host", {
+ "tags":
"lan|ip-v4|no-snmp|tcp|ip-v4-only|special-agents|prod",
+ "sources": ['SpecialAgentDataSource',
'PiggyBackDataSource'],
+ }),
+ ]
+
+ all_hosts = [("%s|%s" % (name, h["tags"])) for name, h in hosts]
+ monkeypatch.setattr(config, "all_hosts", all_hosts)
+
+ changed_hosts_paths = copy.deepcopy(config.host_paths)
+ for name, _h in hosts:
+ changed_hosts_paths[name] = "/"
+ monkeypatch.setattr(config, "host_paths", changed_hosts_paths)
+
+ monkeypatch.setattr(config, "datasource_programs", [
+ ('echo 1', [], ['ds-host-14', 'all-agents-host',
'all-special-host'], {}),
+ ])
+
+ monkeypatch.setitem(config.special_agents, "jolokia", [
+ ({}, [], [
+ 'special-host-14',
+ 'all-agents-host',
+ 'all-special-host',
+ ], {}),
+ ])
+
+ config.get_config_cache().initialize()
+
+ for hostname, host_attrs in hosts:
+ sources = cmk_base.data_sources.DataSources(hostname, "127.0.0.1")
+ source_names = [s.__class__.__name__ for s in sources.get_data_sources()]
+ assert host_attrs["sources"] == source_names, \
+ "Wrong sources for %s" % hostname