+ assert (
+ unit.workload_status_message == "need grafana-url, grafana-user, grafana-password config"
+ )
+
+ await ops_test.model.applications[MON_APP].set_config({"grafana-url": "new_value"})
+ async with ops_test.fast_forward():
+ await ops_test.model.wait_for_idle(apps=[MON_APP], status="blocked")
+ assert unit.workload_status_message == "need grafana-user, grafana-password config"
+
+ await ops_test.model.applications[MON_APP].set_config({"grafana-password": "new_value"})
+ async with ops_test.fast_forward():
+ await ops_test.model.wait_for_idle(apps=[MON_APP], status="blocked")
+ assert unit.workload_status_message == "need grafana-user config"
+
+ await ops_test.model.applications[MON_APP].set_config({"grafana-user": "new_value"})
+ async with ops_test.fast_forward():
+ await ops_test.model.wait_for_idle(apps=[MON_APP], status="blocked")
+
+ assert unit.workload_status_message == "Invalid value for grafana-url config: 'new_value'"
+ await ops_test.model.applications[MON_APP].set_config({"grafana-url": "http://valid:92"})
+
+
+@pytest.mark.abort_on_fail
+async def test_mon_is_blocked_due_to_missing_relations(ops_test: OpsTest):
+ async with ops_test.fast_forward():
+ await ops_test.model.wait_for_idle(apps=[MON_APP], status="blocked")
+ unit = ops_test.model.applications[MON_APP].units[0]