def router_fixture(): frontends = {} backends = {} for provider in PROVIDERS: backends[provider] = FakeBackend( internal_attributes=INTERNAL_ATTRIBUTES) backends[ provider].register_endpoints_func = create_backend_endpoint_func( provider) for receiver in RECEIVERS: frontends[receiver] = FakeFrontend( internal_attributes=INTERNAL_ATTRIBUTES) frontends[ receiver].register_endpoints_func = create_frontend_endpoint_func( receiver) return ModuleRouter(frontends, backends), frontends, backends
def create_router(self): backends = [] for provider in BACKEND_NAMES: backends.append( TestBackend(None, {"attributes": {}}, None, None, provider)) frontends = [] for receiver in FRONTEND_NAMES: frontends.append( TestFrontend(None, {"attributes": {}}, None, None, receiver)) request_micro_service_name = "RequestService" response_micro_service_name = "ResponseService" microservices = [ TestRequestMicroservice(request_micro_service_name, base_url="https://satosa.example.com"), TestResponseMicroservice(response_micro_service_name, base_url="https://satosa.example.com") ] self.router = ModuleRouter(frontends, backends, microservices)
def __init__(self, config): """ Creates a satosa proxy base :type config: satosa.satosa_config.SATOSAConfig :param config: satosa proxy config """ if config is None: raise ValueError("Missing configuration") self.config = config LOGGER.info("Loading backend modules...") backends = load_backends(self.config, self._auth_resp_callback_func, self.config.INTERNAL_ATTRIBUTES) LOGGER.info("Loading frontend modules...") frontends = load_frontends(self.config, self._auth_req_callback_func, self.config.INTERNAL_ATTRIBUTES) self.consent_module = ConsentModule(config, self._consent_resp_callback_func) self.account_linking_module = AccountLinkingModule( config, self._account_linking_callback_func) # TODO register consent_module endpoints to module_router. Just add to backend list? if self.consent_module.enabled: backends["consent"] = self.consent_module if self.account_linking_module.enabled: backends["account_linking"] = self.account_linking_module LOGGER.info("Loading micro services...") self.request_micro_services = None self.response_micro_services = None if "MICRO_SERVICES" in self.config: self.request_micro_services, self.response_micro_services = load_micro_services( self.config.PLUGIN_PATH, self.config.MICRO_SERVICES, self.config.INTERNAL_ATTRIBUTES) self.module_router = ModuleRouter(frontends, backends)
def test_bad_init(self, frontends, backends, micro_services): with pytest.raises(ValueError): ModuleRouter(frontends, backends, micro_services)
def test_bad_init(frontends, backends): with pytest.raises(ValueError): ModuleRouter(frontends, backends)