X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=installers%2Fcharm%2Fosm-mon%2Ftests%2Funit%2Ftest_charm.py;h=441eddbf53cc956e426981747bdefa1214abff34;hb=refs%2Fchanges%2F56%2F13556%2F27;hp=3ea173a2e3046eb3a0e247cf5a1364c679c99e0d;hpb=8ea1f3734719ae55538a22eebe9c9e372ea29baa;p=osm%2Fdevops.git diff --git a/installers/charm/osm-mon/tests/unit/test_charm.py b/installers/charm/osm-mon/tests/unit/test_charm.py index 3ea173a2..441eddbf 100644 --- a/installers/charm/osm-mon/tests/unit/test_charm.py +++ b/installers/charm/osm-mon/tests/unit/test_charm.py @@ -37,11 +37,32 @@ def harness(mocker: MockerFixture): mocker.patch("charm.KubernetesServicePatch", lambda x, y: None) harness = Harness(OsmMonCharm) harness.begin() + harness.container_pebble_ready(container_name) yield harness harness.cleanup() +def _set_grafana_config(harness: Harness): + harness.update_config( + { + "grafana-url": "http://prometheus:1234", + "grafana-user": "user", + "grafana-password": "password", + } + ) + + +def test_default_grafana_config_is_invalid_charm_is_blocked(harness: Harness): + harness.charm.on.config_changed.emit() + assert type(harness.charm.unit.status) == BlockedStatus + assert ( + "need grafana-url, grafana-user, grafana-password config" + == harness.charm.unit.status.message + ) + + def test_missing_relations(harness: Harness): + _set_grafana_config(harness) harness.charm.on.config_changed.emit() assert type(harness.charm.unit.status) == BlockedStatus assert all( @@ -50,12 +71,48 @@ def test_missing_relations(harness: Harness): ) +def test_grafana_url_without_schema_block_status(harness: Harness): + harness.update_config( + {"grafana-url": "foo.com", "grafana-user": "user", "grafana-password": "password"} + ) + assert type(harness.charm.unit.status) == BlockedStatus + assert "Invalid value for grafana-url config: 'foo.com'" == harness.charm.unit.status.message + + +def test_grafana_url_with_port_without_schema_block_status(harness: Harness): + harness.update_config( + {"grafana-url": "foo.com:9090", "grafana-user": "user", "grafana-password": "password"} + ) + assert type(harness.charm.unit.status) == BlockedStatus + assert ( + "Invalid value for grafana-url config: 'foo.com:9090'" == harness.charm.unit.status.message + ) + + +def test_grafana_url_without_port_is_valid(harness: Harness): + _add_relations(harness) + harness.update_config( + {"grafana-url": "http://foo", "grafana-user": "user", "grafana-password": "password"} + ) + assert harness.charm.unit.status == ActiveStatus() + + +def test_grafana_url_with_port_is_valid(harness: Harness): + _add_relations(harness) + harness.update_config( + {"grafana-url": "http://foo:90", "grafana-user": "user", "grafana-password": "password"} + ) + assert harness.charm.unit.status == ActiveStatus() + + def test_ready(harness: Harness): + _set_grafana_config(harness) _add_relations(harness) assert harness.charm.unit.status == ActiveStatus() def test_container_stops_after_relation_broken(harness: Harness): + _set_grafana_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) @@ -71,19 +128,21 @@ def _add_relations(harness: Harness): relation_id = harness.add_relation("mongodb", "mongodb") harness.add_relation_unit(relation_id, "mongodb/0") harness.update_relation_data( - relation_id, "mongodb/0", {"connection_string": "mongodb://:1234"} + relation_id, + "mongodb", + {"uris": "mongodb://:1234", "username": "user", "password": "password"}, ) relation_ids.append(relation_id) # Add kafka relation relation_id = harness.add_relation("kafka", "kafka") harness.add_relation_unit(relation_id, "kafka/0") - harness.update_relation_data(relation_id, "kafka", {"host": "kafka", "port": 9092}) + 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_id, "prometheus", {"hostname": "prometheus", "port": "9090"} ) relation_ids.append(relation_id) # Add keystone relation