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")
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")
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")
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)