X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Fcharm%2Fosm-mon%2Ftests%2Funit%2Ftest_charm.py;h=441eddbf53cc956e426981747bdefa1214abff34;hb=e886c7c1a7624e76bf5f43246601f27439998c26;hp=2d16cd84a7a6aaabda69d93451881cd77ec7c91e;hpb=c5b6206a7c21cadda941762389ecadd0100418f0;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 2d16cd84..441eddbf 100644 --- a/installers/charm/osm-mon/tests/unit/test_charm.py +++ b/installers/charm/osm-mon/tests/unit/test_charm.py @@ -30,7 +30,6 @@ from charm import CharmError, OsmMonCharm, check_service_active container_name = "mon" service_name = "mon" -url_configs = ["grafana-url", "prometheus-url"] @pytest.fixture @@ -43,83 +42,77 @@ def harness(mocker: MockerFixture): harness.cleanup() -def _set_mandatory_config(harness: Harness): +def _set_grafana_config(harness: Harness): harness.update_config( { - "grafana-url": "http://grafana:1234", + "grafana-url": "http://prometheus:1234", "grafana-user": "user", "grafana-password": "password", - "prometheus-url": "http://someurl", } ) -def test_default_config_is_invalid_charm_is_blocked(harness: Harness): +def test_default_grafana_config_is_invalid_charm_is_blocked(harness: Harness): harness.charm.on.config_changed.emit() - assert isinstance(harness.charm.unit.status, BlockedStatus) + assert type(harness.charm.unit.status) == BlockedStatus assert ( - "need grafana-url, grafana-user, grafana-password, prometheus-url config" + "need grafana-url, grafana-user, grafana-password config" == harness.charm.unit.status.message ) def test_missing_relations(harness: Harness): - _set_mandatory_config(harness) + _set_grafana_config(harness) harness.charm.on.config_changed.emit() - assert isinstance(harness.charm.unit.status, BlockedStatus) + assert type(harness.charm.unit.status) == BlockedStatus assert all( relation in harness.charm.unit.status.message for relation in ["mongodb", "kafka", "prometheus", "keystone"] ) -@pytest.mark.parametrize("config_param", url_configs) -def test_url_config_without_schema_block_status(harness: Harness, config_param): - _set_mandatory_config(harness) - _add_relations(harness) - harness.update_config({config_param: "foo.com"}) - assert isinstance(harness.charm.unit.status, BlockedStatus) - assert ( - f"Invalid value for {config_param} config: 'foo.com'" in harness.charm.unit.status.message +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 -@pytest.mark.parametrize("config_param", url_configs) -def test_url_config_with_port_without_schema_block_status(harness: Harness, config_param): - _set_mandatory_config(harness) - _add_relations(harness) - harness.update_config({config_param: "foo.com:9090"}) - assert isinstance(harness.charm.unit.status, BlockedStatus) +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 ( - f"Invalid value for {config_param} config: 'foo.com:9090'" - in harness.charm.unit.status.message + "Invalid value for grafana-url config: 'foo.com:9090'" == harness.charm.unit.status.message ) -@pytest.mark.parametrize("config_param", url_configs) -def test_url_config_without_port_is_valid(harness: Harness, config_param): - _set_mandatory_config(harness) +def test_grafana_url_without_port_is_valid(harness: Harness): _add_relations(harness) - harness.update_config({config_param: "http://foo"}) + harness.update_config( + {"grafana-url": "http://foo", "grafana-user": "user", "grafana-password": "password"} + ) assert harness.charm.unit.status == ActiveStatus() -@pytest.mark.parametrize("config_param", url_configs) -def test_url_config_with_port_is_valid(harness: Harness, config_param): - _set_mandatory_config(harness) +def test_grafana_url_with_port_is_valid(harness: Harness): _add_relations(harness) - harness.update_config({config_param: "http://foo:90"}) + 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_mandatory_config(harness) + _set_grafana_config(harness) _add_relations(harness) assert harness.charm.unit.status == ActiveStatus() def test_container_stops_after_relation_broken(harness: Harness): - _set_mandatory_config(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) @@ -146,7 +139,11 @@ def _add_relations(harness: Harness): harness.update_relation_data(relation_id, "kafka", {"host": "kafka", "port": "9092"}) relation_ids.append(relation_id) # Add prometheus relation - relation_id = harness.add_relation("metrics-endpoint", "prometheus") + 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")