X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Fosm-nbi%2Ftests%2Funit%2Ftest_charm.py;h=af248bfcfd1c18cd137cb32d95e0533cb2cbb237;hb=refs%2Fchanges%2F99%2F13599%2F9;hp=b160419215b243b09da501e59b82a0f15b9257f8;hpb=2dc01891e9c90760f7e421b53f7b63a89b5ce403;p=osm%2Fdevops.git diff --git a/installers/charm/osm-nbi/tests/unit/test_charm.py b/installers/charm/osm-nbi/tests/unit/test_charm.py index b1604192..af248bfc 100644 --- a/installers/charm/osm-nbi/tests/unit/test_charm.py +++ b/installers/charm/osm-nbi/tests/unit/test_charm.py @@ -42,21 +42,65 @@ def harness(mocker: MockerFixture): harness.cleanup() +def _set_prometheus_config(harness: Harness): + harness.update_config({"prometheus-url": "http://prometheus:1234"}) + + +def test_default_config_prometheus_url_is_invalid_charm_is_blocked(harness: Harness): + harness.charm.on.config_changed.emit() + assert type(harness.charm.unit.status) == BlockedStatus + assert "need prometheus-url config" == harness.charm.unit.status.message + + def test_missing_relations(harness: Harness): + _set_prometheus_config(harness) harness.charm.on.config_changed.emit() assert type(harness.charm.unit.status) == BlockedStatus assert all( relation in harness.charm.unit.status.message - for relation in ["mongodb", "kafka", "prometheus", "keystone"] + for relation in ["mongodb", "kafka", "keystone"] + ) + + +def test_prometheus_url_without_schema_blocked_status(harness: Harness): + _add_relations(harness) + harness.update_config({"prometheus-url": "foo.com"}) + assert type(harness.charm.unit.status) == BlockedStatus + assert ( + "Invalid value for prometheus-url config: 'foo.com'" in harness.charm.unit.status.message ) +def test_prometheus_url_with_port_without_schema_blocked_status(harness: Harness): + _add_relations(harness) + harness.update_config({"prometheus-url": "foo.com:9090"}) + assert type(harness.charm.unit.status) == BlockedStatus + assert ( + "Invalid value for prometheus-url config: 'foo.com:9090'" + in harness.charm.unit.status.message + ) + + +def test_prometheus_url_without_port_is_valid(harness: Harness): + _add_relations(harness) + harness.update_config({"prometheus-url": "http://foo"}) + assert harness.charm.unit.status == ActiveStatus() + + +def test_prometheus_url_with_port_is_valid(harness: Harness): + _add_relations(harness) + harness.update_config({"prometheus-url": "http://foo:90"}) + assert harness.charm.unit.status == ActiveStatus() + + def test_ready(harness: Harness): + _set_prometheus_config(harness) _add_relations(harness) assert harness.charm.unit.status == ActiveStatus() def test_container_stops_after_relation_broken(harness: Harness): + _set_prometheus_config(harness) harness.charm.on[container_name].pebble_ready.emit(container_name) container = harness.charm.unit.get_container(container_name) relation_ids = _add_relations(harness) @@ -67,6 +111,7 @@ def test_container_stops_after_relation_broken(harness: Harness): def test_nbi_relation_joined(harness: Harness): + _set_prometheus_config(harness) harness.set_leader(True) _add_relations(harness) relation_id = harness.add_relation("nbi", "ng-ui") @@ -92,13 +137,6 @@ def _add_relations(harness: Harness): harness.add_relation_unit(relation_id, "kafka/0") harness.update_relation_data(relation_id, "kafka", {"host": "kafka", "port": "9092"}) relation_ids.append(relation_id) - # Add prometheus relation - relation_id = harness.add_relation("prometheus", "prometheus") - harness.add_relation_unit(relation_id, "prometheus/0") - harness.update_relation_data( - relation_id, "prometheus", {"hostname": "prometheus", "port": "9090"} - ) - relation_ids.append(relation_id) # Add keystone relation relation_id = harness.add_relation("keystone", "keystone") harness.add_relation_unit(relation_id, "keystone/0")