"enable_test": False,
"auth_backend": "internal",
"database_commonkey": "key",
+ "mongodb_uri": "",
"log_level": "INFO",
"max_file_size": 0,
"ingress_whitelist_source_range": "",
# Assertions
self.assertIsInstance(self.harness.charm.unit.status, ActiveStatus)
+ def test_with_relations_internal_and_mongodb_config(
+ self,
+ ) -> NoReturn:
+ "Test with relations and mongodb config (internal)"
+ self.initialize_kafka_relation()
+ self.initialize_mongo_config()
+ self.initialize_prometheus_relation()
+ # Verifying status
+ self.assertNotIsInstance(self.harness.charm.unit.status, BlockedStatus)
+
def test_with_relations_internal(
self,
) -> NoReturn:
# Verifying status
self.assertNotIsInstance(self.harness.charm.unit.status, BlockedStatus)
+ def test_with_relations_and_mongodb_config_with_keystone_missing(
+ self,
+ ) -> NoReturn:
+ "Test with relations and mongodb config (keystone)"
+ self.harness.update_config({"auth_backend": "keystone"})
+ self.initialize_kafka_relation()
+ self.initialize_mongo_config()
+ self.initialize_prometheus_relation()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
+ self.assertTrue("keystone" in self.harness.charm.unit.status.message)
+
def test_with_relations_keystone_missing(
self,
) -> NoReturn:
self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
self.assertTrue("keystone" in self.harness.charm.unit.status.message)
+ def test_with_relations_and_mongodb_config_with_keystone(
+ self,
+ ) -> NoReturn:
+ "Test with relations (keystone)"
+ self.harness.update_config({"auth_backend": "keystone"})
+ self.initialize_kafka_relation()
+ self.initialize_mongo_config()
+ self.initialize_prometheus_relation()
+ self.initialize_keystone_relation()
+ # Verifying status
+ self.assertNotIsInstance(self.harness.charm.unit.status, BlockedStatus)
+
def test_with_relations_keystone(
self,
) -> NoReturn:
# Verifying status
self.assertNotIsInstance(self.harness.charm.unit.status, BlockedStatus)
+ def test_mongodb_exception_relation_and_config(
+ self,
+ ) -> NoReturn:
+ self.initialize_mongo_config()
+ self.initialize_mongo_relation()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
+
+ def test_config_liveness_probe_with_relations(
+ self,
+ ) -> NoReturn:
+ "Test configuration of liveness probe with relations"
+ self.initialize_nbi_with_keystone()
+ self.config_liveness_probe()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, ActiveStatus)
+
+ def test_wrong_config_liveness_probe_with_relations(
+ self,
+ ) -> NoReturn:
+ "Test wrong configuration of liveness probe with relations"
+ self.initialize_nbi_with_keystone()
+ self.wrong_config_liveness_probe()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
+
+ def test_config_readiness_probe_with_relations(
+ self,
+ ) -> NoReturn:
+ "Test configuration of readiness probe with relations"
+ self.initialize_nbi_with_keystone()
+ self.config_readiness_probe()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, ActiveStatus)
+
+ def test_wrong_config_readiness_probe_with_relations(
+ self,
+ ) -> NoReturn:
+ "Test wrong configuration of readiness probe with relations"
+ self.initialize_nbi_with_keystone()
+ self.wrong_config_readiness_probe()
+ # Verifying status
+ self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus)
+
def initialize_kafka_relation(self):
kafka_relation_id = self.harness.add_relation("kafka", "kafka")
self.harness.add_relation_unit(kafka_relation_id, "kafka/0")
self.harness.update_relation_data(
- kafka_relation_id, "kafka/0", {"host": "kafka", "port": 9092}
+ kafka_relation_id, "kafka", {"host": "kafka", "port": 9092}
+ )
+
+ def initialize_mongo_config(self):
+ self.harness.update_config({"mongodb_uri": "mongodb://mongo:27017"})
+
+ def initialize_nbi_with_keystone(self):
+ self.harness.update_config({"auth_backend": "keystone"})
+ self.initialize_kafka_relation()
+ self.initialize_mongo_relation()
+ self.initialize_prometheus_relation()
+ self.initialize_keystone_relation()
+
+ def config_liveness_probe(self):
+ self.harness.update_config(
+ {"tcpsocket_liveness_probe": '{"initial_delay_seconds": 10}'}
+ )
+
+ def wrong_config_liveness_probe(self):
+ self.harness.update_config(
+ {"tcpsocket_liveness_probe": "{initial_delay_seconds: 10}"}
+ )
+
+ def wrong_config_readiness_probe(self):
+ self.harness.update_config(
+ {"tcpsocket_readiness_probe": "{initial_delay_seconds: 10}"}
+ )
+
+ def config_readiness_probe(self):
+ self.harness.update_config(
+ {"tcpsocket_readiness_probe": '{"initial_delay_seconds": 10}'}
)
def initialize_mongo_relation(self):