- def test_on_prometheus_app_relation_changed(self) -> NoReturn:
- """Test to see if prometheus relation is updated."""
- self.harness.charm.on.start.emit()
-
- self.assertIsNone(self.harness.charm.state.prometheus_host)
- self.assertIsNone(self.harness.charm.state.prometheus_port)
-
- relation_id = self.harness.add_relation("prometheus", "prometheus")
- self.harness.add_relation_unit(relation_id, "prometheus/0")
- self.harness.update_relation_data(
- relation_id, "prometheus", {"hostname": "prometheus", "port": 9090}
- )
-
- self.assertEqual(self.harness.charm.state.prometheus_host, "prometheus")
- self.assertEqual(self.harness.charm.state.prometheus_port, 9090)
-
- # Verifying status
- self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
-
- # Verifying status message
- self.assertGreater(len(self.harness.charm.unit.status.message), 0)
- self.assertTrue(
- self.harness.charm.unit.status.message.startswith("Waiting for ")
- )
- self.assertIn("kafka", self.harness.charm.unit.status.message)
- self.assertIn("mongodb", self.harness.charm.unit.status.message)
- self.assertNotIn("prometheus", self.harness.charm.unit.status.message)
- self.assertTrue(self.harness.charm.unit.status.message.endswith(" relations"))
-