def test_get_open_api_override(self):
        open_api_content = "swagger yaml content"

        # recreate service with new configuration
        self.service.close(None)

        config = rest_config.set_defaults(
            ConfigParams.from_tuples("swagger.auto", False))

        ctrl = DummyController()

        self.service = DummyCommandableHttpService()
        self.service.configure(config)

        references = References.from_tuples(
            Descriptor('pip-services-dummies', 'controller', 'default',
                       'default', '1.0'), ctrl,
            Descriptor('pip-services-dummies', 'service', 'http', 'default',
                       '1.0'), self.service)
        self.service.set_references(references)

        try:
            self.service.open(None)

            response = requests.request('GET',
                                        'http://localhost:3005/dummy/swagger')
            assert response.text == open_api_content
        finally:
            self.service.close(None)
    def setup_class(cls):
        cls.controller = BeaconsController()
        cls.persistence = BeaconsMemoryPersistence()

        cls.service = BeaconsHttpServiceV1()
        cls.service.configure(http_config)

        cls.client = BeaconsHttpClientV1()
        cls.client.configure(http_config)

        cls.references = References.from_tuples(
            Descriptor('beacons', 'persistence', 'memory', 'default', '1.0'), cls.persistence,
            Descriptor('beacons', 'controller', 'default', 'default', '1.0'), cls.controller,
            Descriptor('beacons', 'service', 'http', 'default', '1.0'), cls.service,
            Descriptor('beacons', 'client', 'http', 'default', '1.0'), cls.client
        )
        cls.controller.set_references(cls.references)
        cls.client.set_references(cls.references)
        cls.service.set_references(cls.references)

        cls.fixture = BeaconsClientV1Fixture(cls.client)

        cls.persistence.open(None)
        cls.service.open(None)
        cls.client.open(None)
 def test_lookup(self):
     credential_resolver = CredentialResolver()
     credential = credential_resolver.lookup("correlation_id")
     assert None == credential
     
     RestConfigWithoutStoreKey = ConfigParams.from_tuples(
         "credential.username", "Negrienko",
         "credential.password", "qwerty",
         "credential.access_key", "key"
     )
     credential_resolver = CredentialResolver(RestConfigWithoutStoreKey)
     credential = credential_resolver.lookup("correlation_id")
     assert "Negrienko"  == credential.get("username")
     assert "qwerty" == credential.get("password")
     assert "key" == credential.get("access_key")
     assert None == credential.get("store_key")
     
     credential_resolver = CredentialResolver(RestConfig)
     credential = credential_resolver.lookup("correlation_id")
     assert None == credential
     
     credential_resolver.set_references(References())
     try:
         credential = credential_resolver.lookup("correlation_id")
     except Exception as ex:
         assert "Cannot locate reference: Credential store wasn't found to make lookup" == ex.message
예제 #4
0
    def setup_class(cls):
        cls._persistence = BeaconsMemoryPersistence()
        cls._controller = BeaconsController()
        references = References.from_tuples(Descriptor('beacons', 'persistence', 'memory', 'default', '1.0'), cls._persistence,
                                            Descriptor('beacons', 'controller', 'default', 'default', '1.0'), cls._controller)

        cls._controller.set_references(references)
        cls._persistence.open(None)
예제 #5
0
    def setup_method(self):
        self.client = DummyCommandableHttpClient()
        self.fixture = DummyClientFixture(self.client)

        self.client.configure(rest_config)
        self.client.set_references(References())

        self.client.open(None)
 def test_put(self):
     refs = References()
     refs.put(111, "AAA")
     refs.put(222, "BBB")
     refs.put(333, "CCC")
     refs.put(444, "DDD")
     assert 4 == len(refs.get_all())
예제 #7
0
    def setup_method(self, method):
        refs = References.from_tuples(
            Descriptor('pip-services-commons', 'logger', 'console', 'default',
                       '1.0'), ConsoleLogger())

        self.counters = LogCounters()
        self.counters.set_references(refs)

        self.fixture = CountersFixture(self.counters)
    def setup_method(self, method):
        log = NullLogger()
        refs = References.from_tuples(
            Descriptor("pip-services", "logger", "null", "default", "1.0"), log
        )

        self.counters = LogCounters()
        self.counters.set_references(refs)

        self.fixture = CountersFixture(self.counters)
예제 #9
0
    def setup_class(cls):
        cls.controller = DummyController()
        
        cls.client = DummyDirectClient()

        cls.references = References.from_tuples(
            Descriptor("pip-services-dummies", "controller", "default", "default", "1.0"), cls.controller, 
            Descriptor("pip-services-dummies", "client", "direct", "default", "1.0"), cls.client
        )
        cls.client.set_references(cls.references)

        cls.fixture = DummyClientFixture(cls.client)
예제 #10
0
    def setup_class(cls):
        cls.controller = DummyController()

        cls.service = DummyRestService()
        cls.service.configure(rest_config)

        references = References.from_tuples(
            Descriptor("pip-services-dummies", "controller", "default",
                       "default", "1.0"), cls.controller,
            Descriptor("pip-services-dummies", "service", "http", "default",
                       "1.0"), cls.service)

        cls.service.set_references(references)
예제 #11
0
    def __init__(self, tuples = None):
        """
        Creates a new instance of the references

        :param tuples: tuples where odd values are component locators (descriptors) and even values are component references
        """
        super(ManagedReferences, self).__init__(None, None)

        self._references = References(tuples)
        self._builder = BuildReferencesDecorator(self._references, self)
        self._linker = LinkReferencesDecorator(self._builder, self)
        self._runner = RunReferencesDecorator(self._linker, self)

        self.base_references = self._runner
예제 #12
0
    def setup_class(cls):
        cls.controller = DummyController()

        cls.service = DummyCommandableGrpcService()
        cls.service.configure(grpc_config)

        cls.references = References.from_tuples(
            Descriptor('pip-services-dummies', 'controller', 'default',
                       'default', '1.0'), cls.controller,
            Descriptor('pip-services-dummies', 'service', 'grpc', 'default',
                       '1.0'), cls.service)

        cls.service.set_references(cls.references)
        cls.service.open(None)
예제 #13
0
    def setup_class(cls):
        cls.service = StatusRestService()
        cls.service.configure(rest_config)

        contextInfo = ContextInfo()
        contextInfo.name = "Test"
        contextInfo.description = "This is a test container"

        cls.references = References.from_tuples(
            Descriptor("pip-services", "context-info", "default", "default",
                       "1.0"), contextInfo,
            Descriptor("pip-services-dummies", "service", "http", "default",
                       "1.0"), cls.service)

        cls.service.set_references(cls.references)
    def test_get(self):
        refs = References.from_tuples(111, "AAA", 222, "BBB", 333, "CCC", 444,
                                      "DDD")
        assert 4 == len(refs.get_all())

        item = refs.get_one_optional(555)
        assert None == item

        item = refs.get_one_required(111)
        assert "AAA" == item

        items = refs.get_optional(666)
        assert 0 == len(items)

        items = refs.get_required(333)
        assert 1 == len(items)
예제 #15
0
    def setup_class(cls):
        controller = DummyController()

        cls.service = DummyCommandableHttpService()
        cls.service.configure(rest_config)

        references = References.from_tuples(
            Descriptor("pip-services-dummies", "controller", "default", "default", "1.0"), controller,
            Descriptor("pip-services-dummies", "service", "http", "default", "1.0"), cls.service
        )

        cls.service.set_references(references)

        cls.service.open(None)

        time.sleep(0.5)
예제 #16
0
    def test_resolve_depedencies(self):
        ref1 = "AAA"
        ref2 = "BBB"
        refs = References.from_tuples(
            "Reference1", ref1,
            Descriptor("pip-services-commons", "reference", "object", "ref2",
                       "1.0"), ref2)

        resolver = DependencyResolver.from_tuples(
            "ref1", "Reference1", "ref2",
            Descriptor("pip-services-commons", "reference", "*", "*", "*"))
        resolver.set_references(refs)

        assert ref1 == resolver.get_one_required("ref1")
        assert ref2 == resolver.get_one_required("ref2")
        assert None == resolver.get_one_optional("ref3")
    def setup_class(cls):
        cls.controller = DummyController()

        cls.service = DummyGrpcService()
        cls.service.configure(grpc_config)

        cls.references = References.from_tuples(
            Descriptor('pip-services-dummies', 'controller', 'default',
                       'default', '1.0'), cls.controller,
            Descriptor('pip-services-dummies', 'service', 'grpc', 'default',
                       '1.0'), cls.service)

        cls.service.set_references(cls.references)
        cls.service.open(None)

        cls.chanel = grpc.insecure_channel('localhost:' + str(port))
        cls.client = dummies_pb2_grpc.DummiesStub(cls.chanel)
예제 #18
0
    def test_configure_depedencies(self):
        ref1 = "AAA"
        ref2 = "BBB"
        refs = References.from_tuples(
            "Reference1", ref1,
            Descriptor("pip-services-commons", "reference", "object", "ref2",
                       "1.0"), ref2)

        config = ConfigParams.from_tuples(
            "dependencies.ref1", "Reference1", "dependencies.ref2",
            "pip-services-commons:reference:*:*:*", "dependencies.ref3", None)

        resolver = DependencyResolver(config)
        resolver.set_references(refs)

        assert ref1 == resolver.get_one_required("ref1")
        assert ref2 == resolver.get_one_required("ref2")
        assert None == resolver.get_one_optional("ref3")
예제 #19
0
    def test_resolve(self):
        connection_resolver = ConnectionResolver(RestConfig)
        connection_params = connection_resolver.resolve("correlation_id")
        assert "http" == connection_params.get("protocol")
        assert "localhost" == connection_params.get("host")
        assert "3000" == connection_params.get("port")

        RestConfigDiscovery = ConfigParams.from_tuples(
            "connection.protocol", "http", "connection.host", "localhost",
            "connection.port", 3000, "connection.discovery_key",
            "Discovery key value")
        references = References()
        connection_resolver = ConnectionResolver(RestConfigDiscovery,
                                                 references)
        try:
            connection_params = connection_resolver.resolve("correlation_id")
        except Exception as ex:
            assert "Discovery wasn't found to make resolution" == ex.message
    def setup_class(cls):
        controller = DummyController()
        cls.service = DummyRestService()
        cls.service.configure(ConfigParams.from_tuples(
            'base_route', '/api/v1'
        ))

        cls.endpoint = HttpEndpoint()
        cls.endpoint.configure(rest_config)

        references = References.from_tuples(
            Descriptor("pip-services-dummies", "controller", "default", "default", "1.0"), controller,
            Descriptor('pip-services-dummies', 'service', 'rest', 'default', '1.0'), cls.service,
            Descriptor('pip-services', 'endpoint', 'http', 'default', '1.0'), cls.endpoint
        )

        cls.service.set_references(references)
        cls.endpoint.open(None)
        cls.service.open(None)
    def setup_class(cls):
        cls.controller = DummyController()

        cls.service = DummyRestService()
        cls.service.configure(rest_config)

        cls.client = DummyRestClient()
        cls.client.configure(rest_config)

        cls.references = References.from_tuples(
            Descriptor("pip-services-dummies", "controller", "default",
                       "default", "1.0"), cls.controller,
            Descriptor("pip-services-dummies", "service", "rest", "default",
                       "1.0"), cls.service,
            Descriptor("pip-services-dummies", "client", "rest", "default",
                       "1.0"), cls.client)
        cls.client.set_references(cls.references)
        cls.service.set_references(cls.references)

        cls.fixture = DummyClientFixture(cls.client)
    def test_get_open_api_spec_from_file(self):
        self.service.close(None)

        open_api_content = 'swagger yaml content from file'
        filename = 'dummy_' + IdGenerator.next_long() + '.tmp'

        # create temp file
        with open(filename, 'w') as f:
            f.write(open_api_content)

        # recreate service with new configuration
        service_config = ConfigParams.from_tuples(
            "connection.protocol",
            "http",
            "connection.host",
            "localhost",
            "connection.port",
            3001,
            "swagger.path",
            filename,  # for test only
            "swagger.enable",
            "true")
        ctrl = DummyController()

        self.service = DummyRestService()
        self.service.configure(service_config)

        references = References.from_tuples(
            Descriptor('pip-services-dummies', 'controller', 'default',
                       'default', '1.0'), ctrl,
            Descriptor('pip-services-dummies', 'service', 'rest', 'default',
                       '1.0'), self.service)
        self.service.set_references(references)

        self.service.open(None)

        response = requests.request('GET', 'http://localhost:3001/swagger')
        assert response.text == open_api_content

        # delete temp file
        os.remove(filename)
예제 #23
0
    def test_register(self):
        connection_params = ConnectionParams()
        connection_resolver = ConnectionResolver(RestConfig)
        connection_resolver.register("correlation_id", connection_params)
        config_list = connection_resolver.get_all()
        assert 1 == len(config_list)

        connection_params.set_discovery_key("Discovery key value")
        connection_resolver.register("correlation_id", connection_params)
        config_list = connection_resolver.get_all()
        assert 1 == len(config_list)

        references = References()
        connection_resolver.set_references(references)
        connection_resolver.register("correlation_id", connection_params)
        config_list = connection_resolver.get_all()
        assert 2 == len(config_list)
        assert "http" == config_list[0]["protocol"]
        assert "localhost" == config_list[0]["host"]
        assert "3000" == config_list[0]["port"]
        assert "Discovery key value" == config_list[1]["discovery_key"]
    def setup_class(cls):
        cls._persistence = BeaconsMemoryPersistence()
        cls._controller = BeaconsController()
        cls._service = BeaconsHttpServiceV1()

        cls._service.configure(ConfigParams.from_tuples(
            'connection.protocol', 'http',
            'connection.port', 3002,
            'connection.host', 'localhost'))

        references = References.from_tuples(Descriptor('beacons', 'persistence', 'memory', 'default', '1.0'),
                                            cls._persistence,
                                            Descriptor('beacons', 'controller', 'default', 'default', '1.0'),
                                            cls._controller,
                                            Descriptor('beacons', 'service', 'http', 'default', '1.0'),
                                            cls._service)
        cls._controller.set_references(references)
        cls._service.set_references(references)

        cls._persistence.open(None)
        cls._service.open(None)
예제 #25
0
    def setup_class(cls):
        cls.controller = DummyController()

        cls.service = DummyGrpcService()
        cls.service.configure(grpc_config)

        cls.references = References.from_tuples(
            Descriptor('pip-services-dummies', 'controller', 'default',
                       'default', '1.0'), cls.controller,
            Descriptor('pip-services-dummies', 'service', 'grpc', 'default',
                       '1.0'), cls.service)

        cls.service.set_references(cls.references)
        cls.service.open(None)

        with open(get_fullpath('../credentials/ssl_ca_file'), 'rb') as f:
            credentials = f.read()

        credentials = grpc.ssl_channel_credentials(credentials)

        cls.chanel = grpc.secure_channel('localhost:' + str(port),
                                         credentials=credentials)
        cls.client = dummies_pb2_grpc.DummiesStub(cls.chanel)
예제 #26
0
    def setup_class(cls):
        cls.service = PrometheusMetricsService()
        cls.service.configure(rest_config)

        cls.counters = PrometheusCounters()

        context_info = ContextInfo()
        context_info.name = 'Test'
        context_info.description = 'This is a test container'

        references = References.from_tuples(
            Descriptor("pip-services", "context-info", "default", "default",
                       "1.0"), context_info,
            Descriptor("pip-services", "counters", "prometheus", "default",
                       "1.0"), cls.counters,
            Descriptor("pip-services", "metrics-service", "prometheus",
                       "default", "1.0"), cls.service)

        cls.counters.set_references(references)
        cls.service.set_references(references)

        cls.counters.open(None)
        cls.service.open(None)
예제 #27
0
 def setup_method(self):
     self._tracer = LogTracer()
     self._tracer.set_references(
         References.from_tuples(
             Descriptor("pip-services", "logger", "null", "default", "1.0"),
             NullLogger()))