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", "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
+ for relation in ["mongodb", "kafka", "prometheus", "keystone"]
)
-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)
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")
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")