def _create_from_endpoint_config( endpoint_config: Optional[EndpointConfig], ) -> Optional["EventBroker"]: """Instantiate an event broker based on its configuration.""" if endpoint_config is None: broker = None elif endpoint_config.type is None or endpoint_config.type.lower() == "pika": from rasa.core.brokers.pika import PikaEventBroker # default broker if no type is set broker = PikaEventBroker.from_endpoint_config(endpoint_config) elif endpoint_config.type.lower() == "sql": from rasa.core.brokers.sql import SQLEventBroker broker = SQLEventBroker.from_endpoint_config(endpoint_config) elif endpoint_config.type.lower() == "file": from rasa.core.brokers.file import FileEventBroker broker = FileEventBroker.from_endpoint_config(endpoint_config) elif endpoint_config.type.lower() == "kafka": from rasa.core.brokers.kafka import KafkaEventBroker broker = KafkaEventBroker.from_endpoint_config(endpoint_config) else: broker = _load_from_module_string(endpoint_config) if broker: logger.debug(f"Instantiated event broker to '{broker.__class__.__name__}'.") return broker
def test_kafka_broker_security_protocols(file: Text, exception: Exception): endpoints_path = f"data/test_endpoints/event_brokers/{file}" cfg = read_endpoint_config(endpoints_path, "event_broker") actual = KafkaEventBroker.from_endpoint_config(cfg) with pytest.raises(exception): # noinspection PyProtectedMember actual._create_producer()
def test_kafka_broker_from_config(): endpoints_path = "data/test_endpoints/event_brokers/kafka_plaintext_endpoint.yml" cfg = read_endpoint_config(endpoints_path, "event_broker") actual = KafkaEventBroker.from_endpoint_config(cfg) expected = KafkaEventBroker( "localhost", "username", "password", topic="topic", security_protocol="SASL_PLAINTEXT", ) assert actual.host == expected.host assert actual.sasl_username == expected.sasl_username assert actual.sasl_password == expected.sasl_password assert actual.topic == expected.topic