Esempio n. 1
0
 def setUpClass(cls) -> None:
     secrets_file = Path(__file__).parent.parent.parent.joinpath(
         "secrets.json")
     cls.api_factory = lusid.utilities.ApiClientFactory(
         api_secrets_filename=secrets_file)
     cls.logger = logger.LusidLogger("debug")
     cls.loop = cocoon.async_tools.start_event_loop_new_thread()
    def setUpClass(cls) -> None:

        secrets_file = Path(__file__).parent.parent.parent.joinpath(
            "secrets.json")
        cls.api_factory = lusid.utilities.ApiClientFactory(
            api_secrets_filename=secrets_file)
        cls.portfolios_api = cls.api_factory.build(lusid.api.PortfoliosApi)
        cls.unique_id = create_scope_id()
        cls.logger = logger.LusidLogger("debug")
        cls.scope = "ModelFundTest"
        cls.file_name = "data/reference-portfolio/reference-test.csv"
    def setUpClass(cls):
        secrets_file = Path(__file__).parent.parent.parent.joinpath(
            "secrets.json")
        cls.api_factory = lusid.utilities.ApiClientFactory(
            api_secrets_filename=secrets_file)
        cls.logger = logger.LusidLogger("debug")
        cls.instruments_api = cls.api_factory.build(lusid.api.InstrumentsApi)

        # Set test parameters as class methods
        cls.scope = "TestScope"
        cls.mapping_required = {
            "name": "Name",
            "definition.start_date": "Issue Date",
            "definition.maturity_date": "Maturity Date",
            "definition.dom_ccy": "Currency",
            "definition.instrument_type": "Instrument Type",
            "definition.principal": "Principal",
            "definition.coupon_rate": "Coupon",
            "definition.identifiers.ClientInternal": "Client Internal",
            "definition.flow_conventions.currency": "Currency",
            "definition.flow_conventions.payment_frequency":
            "Payment Frequency",
            "definition.flow_conventions.day_count_convention":
            "Day Count Convention",
            "definition.flow_conventions.roll_convention": "Roll Convention",
            "definition.flow_conventions.payment_calendars":
            "Payment Calendars",
            "definition.flow_conventions.reset_calendars": "Reset Calendars",
            "definition.flow_conventions.settle_days": "Settlement Days",
            "definition.flow_conventions.reset_days": "Reset Days",
        }
        cls.mapping_optional = {}
        cls.identifier_mapping = {
            "Isin": "ISIN",
            "ClientInternal": "Client Internal"
        }
        cls.file_name = "data/global-fund-fixed-income-master.csv"
 def setUpClass(cls) -> None:
     cls.logger = logger.LusidLogger("debug")
Esempio n. 5
0
 def setUpClass(cls) -> None:
     secrets_file = Path(__file__).parent.parent.parent.joinpath(
         "secrets.json")
     cls.api_factory = lusid.utilities.ApiClientFactory(
         api_secrets_filename=secrets_file)
     cls.logger = logger.LusidLogger("debug")
Esempio n. 6
0
    def setUpClass(cls) -> None:
        secrets_file = Path(__file__).parent.parent.parent.joinpath("secrets.json")

        cls.logger = logger.LusidLogger("debug")
 def setUpClass(cls) -> None:
     # Use a mock of the lusid.ApiClientFactory
     secrets_file = Path(__file__).parent.parent.parent.joinpath(
         "secrets.json")
     cls.api_factory = cls.MockApiFactory(api_secrets_filename=secrets_file)
     cls.logger = logger.LusidLogger("debug")
Esempio n. 8
0
    def setUpClass(cls) -> None:
        secrets_file = Path(__file__).parent.parent.parent.joinpath(
            "secrets.json")
        cls.api_factory = lusid.utilities.ApiClientFactory(
            api_secrets_filename=secrets_file)
        cls.logger = logger.LusidLogger("debug")

        cls.scope = scope

        portfolio_holdings = pd.read_csv(
            Path(__file__).parent.joinpath("./data/holdings-example.csv"))
        portfolio_groups = pd.read_csv(
            Path(__file__).parent.joinpath("./data/portfolio-groups.csv"))

        # Create portfolios
        response = cocoon.load_from_data_frame(
            api_factory=cls.api_factory,
            scope=cls.scope,
            data_frame=portfolio_holdings,
            mapping_required={
                "code": "FundCode",
                "display_name": "FundCode",
                "created": "$2010-10-09T08:00:00Z",
                "base_currency": "$AUD",
            },
            mapping_optional={},
            file_type="portfolios",
            property_columns=[],
        )
        assert len(response["portfolios"]["errors"]) == 0

        # Add holdings
        response = cocoon.load_from_data_frame(
            api_factory=cls.api_factory,
            scope=cls.scope,
            data_frame=portfolio_holdings,
            mapping_required={
                "code": "FundCode",
                "effective_at": "Effective Date",
                "tax_lots.units": "Quantity",
            },
            mapping_optional={
                "tax_lots.cost.amount": "Local Market Value",
                "tax_lots.cost.currency": "Local Currency Code",
                "tax_lots.portfolio_cost": None,
                "tax_lots.price": None,
                "tax_lots.purchase_date": None,
                "tax_lots.settlement_date": None,
            },
            file_type="holdings",
            identifier_mapping={
                "ClientInternal": "SEDOL Security Identifier",
                "Currency": "is_cash_with_currency",
            },
            property_columns=[],
            holdings_adjustment_only=True,
        )
        assert len(response["holdings"]["errors"]) == 0

        # Create groups
        response = cocoon.load_from_data_frame(
            api_factory=cls.api_factory,
            scope=cls.scope,
            data_frame=portfolio_groups,
            mapping_required={
                "code": "PortGroupCode",
                "display_name": "PortGroupDisplayName",
                "created": "$2010-10-09T08:00:00Z",
            },
            mapping_optional={
                "values.scope": f"${cls.scope}",
                "values.code": "FundCode",
            },
            file_type="portfolio_group",
            property_columns=[],
        )
        assert len(response["portfolio_groups"]["errors"]) == 0

        # Create group with sub-groups
        response = cls.api_factory.build(
            lusid.api.PortfolioGroupsApi).create_portfolio_group(
                scope=cls.scope,
                create_portfolio_group_request=lusid.models.
                CreatePortfolioGroupRequest(
                    code="SubGroups",
                    display_name="SubGroups",
                    created="2010-10-09T08:00:00Z",
                    values=[
                        lusid.models.ResourceId(scope=cls.scope,
                                                code="Portfolio-Y")
                    ],
                    sub_groups=[
                        lusid.models.ResourceId(scope=cls.scope, code="ABC12")
                    ],
                ),
            )

        assert isinstance(response, lusid.models.PortfolioGroup)