def _get_extensions(): with store.locked(extensions_filepath): raw_extensions = store.load_bytes_from_file( extensions_filepath, default=b'{}', ) return LicenseUsageExtensions.deserialize(raw_extensions)
def test_update_history_de_serialize(monkeypatch): history_dump = LicenseUsageHistoryDump( VERSION="1.1", history=[ _license_usage_sample_example, LicenseUsageSample( version="Foo", edition="bär", platform="Test 123 - tßßßzz", is_cma=False, sample_time=75, timezone="", num_hosts=50, num_hosts_excluded=0, num_services=500, num_services_excluded=0, extensions=LicenseUsageExtensions(ntop=False, ), ), ], ) serialized_history_dump = history_dump.serialize() assert isinstance(serialized_history_dump, bytes) deserialized_history_dump = LicenseUsageHistoryDump.deserialize( serialized_history_dump) assert isinstance(deserialized_history_dump, LicenseUsageHistoryDump) assert history_dump.VERSION == deserialized_history_dump.VERSION assert deserialized_history_dump.VERSION == "1.1" assert history_dump.history == deserialized_history_dump.history assert len(deserialized_history_dump.history) == 2 for (version, edition, platform, sample_time, num_hosts, num_services), sample in zip( [ ("", "", "", 150, 100, 1000), ("Foo", "bär", "Test 123 - tßßßzz", 75, 50, 500), ], deserialized_history_dump.history, ): assert sample.version == version assert sample.edition == edition assert sample.platform == platform assert sample.is_cma is False assert sample.sample_time == sample_time assert sample.timezone == "" assert sample.num_hosts == num_hosts assert sample.num_services == num_services assert sample.extensions.ntop is False
def test__create_sample(monkeypatch, num_hosts, num_hosts_excluded, num_services, num_services_excluded, returns_sample): def _mock_livestatus(query): if "GET hosts" in query: return num_hosts, num_hosts_excluded return num_services, num_services_excluded monkeypatch.setattr( license_usage, "_get_stats_from_livestatus", _mock_livestatus, ) monkeypatch.setattr( license_usage, "_get_extensions", lambda: LicenseUsageExtensions(ntop=False), ) sample = license_usage._create_sample() if returns_sample: assert sample is not None else: assert sample is None
def test_update_history__create_or_update_history_dump(monkeypatch): serialized_history_dump = LicenseUsageHistoryDump( VERSION="1.1", history=[ LicenseUsageSample( version="", edition="", platform="", is_cma=False, sample_time=3, timezone="", num_hosts=3, num_hosts_excluded=0, num_services=30, num_services_excluded=0, extensions=LicenseUsageExtensions(ntop=False, ), ), LicenseUsageSample( version="", edition="", platform="", is_cma=False, sample_time=2, timezone="", num_hosts=2, num_hosts_excluded=0, num_services=20, num_services_excluded=0, extensions=LicenseUsageExtensions(ntop=False, ), ), LicenseUsageSample( version="", edition="", platform="", is_cma=False, sample_time=1, timezone="", num_hosts=1, num_hosts_excluded=0, num_services=10, num_services_excluded=0, extensions=LicenseUsageExtensions(ntop=False, ), ), ], ).serialize() monkeypatch.setattr(store, "load_bytes_from_file", lambda p, default: serialized_history_dump) monkeypatch.setattr( license_usage, "_create_sample", lambda: _license_usage_sample_example, ) history_dump = license_usage._create_or_update_history_dump() assert history_dump.VERSION == "1.1" assert len(history_dump.history) == 4 for (sample_time, num_hosts, num_services), sample in zip( [ (150, 100, 1000), (3, 3, 30), (2, 2, 20), (1, 1, 10), ], history_dump.history, ): assert sample.version == "" assert sample.edition == "" assert sample.platform == "" assert sample.is_cma is False assert sample.sample_time == sample_time assert sample.timezone == "" assert sample.num_hosts == num_hosts assert sample.num_services == num_services assert sample.extensions.ntop is False
) import cmk.base.license_usage as license_usage _license_usage_sample_example = LicenseUsageSample( version="", edition="", platform="", is_cma=False, sample_time=150, timezone="", num_hosts=100, num_hosts_excluded=0, num_services=1000, num_services_excluded=0, extensions=LicenseUsageExtensions(ntop=False, ), ) def test_update_history_deserialize(monkeypatch): monkeypatch.setattr(store, "load_bytes_from_file", lambda p, default: b"{}") history_dump = license_usage._load_history_dump() assert history_dump.VERSION == LicenseUsageHistoryDumpVersion assert history_dump.history == [] def test_update_history_de_serialize(monkeypatch): history_dump = LicenseUsageHistoryDump( VERSION="1.1",