예제 #1
0
    def test_generate_scope_and_code(self, _, scope, expected_scope):
        id_generator = IdGenerator()
        gen_entity, gen_scope, gen_code = id_generator.generate_scope_and_code(
            "portfolio", scope=scope)

        self.assertEqual("portfolio", gen_entity)
        self.assertEqual(expected_scope, gen_scope)
        self.assertIsNotNone(gen_code)
        self.assertIsNot("", gen_code)
예제 #2
0
    def test_generate_scope_and_code_with_scope_prefix(self):
        code_prefix = "abc-"
        id_generator = IdGenerator()
        gen_entity, gen_scope, gen_code = id_generator.generate_scope_and_code(
            "portfolio", code_prefix=code_prefix)

        self.assertEqual("portfolio", gen_entity)
        self.assertEqual(IdGenerator.default_scope, gen_scope)
        self.assertIsNotNone(gen_code)
        self.assertTrue(gen_code.startswith(code_prefix))
예제 #3
0
    def test_add_scope_and_code_with_specified_scope(self):
        test_scope = "test-scope"
        id_generator = IdGenerator()
        code = str(uuid.uuid4())
        id_generator.add_scope_and_code("portfolio", test_scope, code)

        val = next(id_generator.pop_scope_and_codes(), None)

        self.assertEqual(test_scope, val[1])
        self.assertEqual(code, val[2])
예제 #4
0
    def test_add_scope_and_code(self):
        id_generator = IdGenerator()
        code = str(uuid.uuid4())
        id_generator.add_scope_and_code("portfolio", IdGenerator.default_scope,
                                        code)

        val = next(id_generator.pop_scope_and_codes(), None)

        self.assertEqual(IdGenerator.default_scope, val[1])
        self.assertEqual(code, val[2])
예제 #5
0
    def test_get_scope_and_code_with_default_scope(self):
        id_generator = IdGenerator()
        entity, scope, code = id_generator.generate_scope_and_code("portfolio")

        val = next(id_generator.pop_scope_and_codes(), None)

        self.assertEqual(scope, val[1])
        self.assertEqual(scope, id_generator.default_scope)

        val = next(id_generator.pop_scope_and_codes(), None)
        self.assertIsNone(val)
예제 #6
0
    def test_get_scope_and_code_with_specified_scope(self):
        test_scope = "test-scope"
        id_generator = IdGenerator(test_scope)
        entity, scope, code = id_generator.generate_scope_and_code("portfolio")

        val = next(id_generator.pop_scope_and_codes(), None)

        self.assertEqual(scope, val[1])
        self.assertEqual(scope, test_scope)

        val = next(id_generator.pop_scope_and_codes(), None)
        self.assertIsNone(val)
예제 #7
0
    def test_get_multiple_scope_and_codes(self):
        id_generator = IdGenerator()
        n = 5

        vals = {
            id_generator.generate_scope_and_code("portfolio")
            for _ in range(n)
        }

        gen_vals = set(id_generator.pop_scope_and_codes())
        self.assertEqual(n, len(gen_vals))
        self.assertSetEqual(vals, gen_vals)
예제 #8
0
    def test_generate_scope_and_code_with_different_entity(self):
        id_generator = IdGenerator()
        entity1, scope1, code1 = id_generator.generate_scope_and_code(
            "portfolio")

        entity2, scope2, code2 = id_generator.generate_scope_and_code(
            "property")

        vals = set(id_generator.pop_scope_and_codes())

        self.assertEqual(2, len(vals))
        self.assertIn((entity1, scope1, code1), vals)
        self.assertIn((entity2, scope2, code2), vals)
예제 #9
0
    def test_generate_scope_and_code_with_annotations(self):
        id_generator = IdGenerator()
        test_scope = "test-scope"
        annotations = ["val1", "val2"]
        item = id_generator.generate_scope_and_code("portfolio",
                                                    scope=test_scope,
                                                    annotations=annotations)

        self.assertEqual("portfolio", item[0])
        self.assertEqual(test_scope, item[1])
        self.assertIsNotNone(item[2])
        self.assertIsNot("", item[2])
        self.assertEqual("val1", item[3])
        self.assertEqual("val2", item[4])
    def setUpClass(cls):

        logging.basicConfig(level=logging.INFO)

        # create a configured API client
        api_client = TestDataUtilities.api_client()
        cls.property_definitions_api = lusid.PropertyDefinitionsApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)
        cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(
            api_client)
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #11
0
    def test_clear_scope_and_code(self):
        id_generator = IdGenerator()
        id_generator.generate_scope_and_code("portfolio")

        vals = id_generator.pop_scope_and_codes()
        self.assertEqual(1, len(list(vals)))

        id_generator.clear()

        self.assertEqual(0, len(list(vals)))
예제 #12
0
    def setUpClass(cls):
        # create a configured API client
        api_client = TestDataUtilities.api_client()

        cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)

        instrument_loader = InstrumentLoader(cls.instruments_api)
        cls.instrument_ids = instrument_loader.load_instruments()

        cls.test_data_utilities = TestDataUtilities(cls.transaction_portfolios_api)
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #13
0
    def setUp(cls):
        # create a configured API client
        api_client = ApiClientBuilder().build(
            str(CredentialsSource.secrets_path()))

        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)
        cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(
            api_client)
        cls.corporate_actions_sources_api = lusid.CorporateActionSourcesApi(
            api_client)

        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #14
0
    def setUpClass(cls):

        logging.basicConfig(level=logging.INFO)

        # create a configured API client
        api_client = TestDataUtilities.api_client()
        cls.property_definitions_api = lusid.PropertyDefinitionsApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)

        # load instruments from InstrumentLoader
        instrument_loader = InstrumentLoader(cls.instruments_api)
        cls.instrument_ids = instrument_loader.load_instruments()
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #15
0
    def setUpClass(cls):
        # create a configured API client
        api_client = ApiClientBuilder().build(CredentialsSource.secrets_path())

        cls.property_definitions_api = lusid.PropertyDefinitionsApi(api_client)
        cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)

        instrument_loader = InstrumentLoader(cls.instruments_api)
        cls.instrument_ids = instrument_loader.load_instruments()

        cls.test_data_utilities = TestDataUtilities(cls.transaction_portfolios_api)
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #16
0
    def test_add_existing_scope_and_code(self):
        id_generator = IdGenerator()
        _, gen_scope, gen_code = id_generator.generate_scope_and_code(
            "portfolio")

        id_generator.add_scope_and_code("portfolio", gen_scope, gen_code)

        gen_vals = set(id_generator.pop_scope_and_codes())
        self.assertEqual(1, len(gen_vals))
예제 #17
0
    def setUpClass(cls):

        # Create API client
        api_client = TestDataUtilities.api_client()

        # Instantiate APIs we will use
        cls.reference_portfolio_api = lusid.ReferencePortfolioApi(api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)

        # Load instruments
        cls.instrument_loader = InstrumentLoader(cls.instruments_api)
        cls.instrument_ids = cls.instrument_loader.load_instruments()

        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #18
0
    def setUpClass(cls):
        # create a configured API client
        api_client = TestDataUtilities.api_client()
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)

        cls.orders_api = lusid.OrdersApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.properties_api = lusid.PropertyDefinitionsApi(api_client)

        instrument_loader = InstrumentLoader(cls.instruments_api)

        cls.instrument_ids = instrument_loader.load_instruments()
        cls.load_properties(
            properties_api=cls.properties_api,
            id_generator=cls.id_generator,
            scopes=cls.tests_scope.values(),
            codes=cls.test_codes
        )
예제 #19
0
    def setUpClass(cls):
        # setup logging configuration
        cls.root_logger = logging.getLogger(__name__)
        cls.root_logger.setLevel(logging.INFO)

        # create a configured API client
        api_client = TestDataUtilities.api_client()
        cls.property_definitions_api = lusid.PropertyDefinitionsApi(api_client)
        cls.instruments_api = lusid.InstrumentsApi(api_client)
        cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(
            api_client)
        cls.portfolios_api = lusid.PortfoliosApi(api_client)

        # load instruments from InstrumentLoader
        instrument_loader = InstrumentLoader(cls.instruments_api)
        cls.instrument_ids = instrument_loader.load_instruments()

        # set test scope and code
        cls.scope = "TransactionProperty"
        cls.code = "TransactionTaxDetail"
        cls.id_generator = IdGenerator(scope=TestDataUtilities.tutorials_scope)
예제 #20
0
 def test_uses_provided_scope(self, scope):
     id_generator = IdGenerator(scope)
     self.assertEqual(scope, id_generator.scope)
예제 #21
0
 def test_explicit_none_scope_uses_default(self):
     id_generator = IdGenerator(None)
     self.assertEqual(IdGenerator.default_scope, id_generator.scope)
예제 #22
0
 def test_use_default_scope_when_not_specified(self):
     id_generator = IdGenerator()
     self.assertEqual(IdGenerator.default_scope, id_generator.scope)