Esempio n. 1
0
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
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 def test_bad_init(self, frontends, backends, micro_services):
     with pytest.raises(ValueError):
         ModuleRouter(frontends, backends, micro_services)
Esempio n. 5
0
def test_bad_init(frontends, backends):
    with pytest.raises(ValueError):
        ModuleRouter(frontends, backends)