def upload_partial_data(self, data: RiskModelData, target_universe_size: float = None): """ Upload partial risk model data to existing risk model, if repeats in partial upload, newer posted data will replace existing data on upload day """ GsRiskModelApi.upload_risk_model_data( self.model.id, data, partial_upload=True, target_universe_size=target_universe_size)
def test_upload_risk_model_data(mocker): risk_model_data = { 'date': '2020-02-05', 'assetData': { 'universe': ['2407966', '2046251', 'USD'], 'specificRisk': [12.09, 45.12, 3.09], 'factorExposure': [{ '1': 0.23, '2': 0.023 }], 'historicalBeta': [0.12, 0.45, 1.2] }, 'factorData': [{ 'factorId': '1', 'factorName': 'USD', 'factorCategory': 'Currency', 'factorCategoryId': 'CUR' }], 'covarianceMatrix': [[0.089, 0.0123, 0.345]], 'issuerSpecificCovariance': { 'universeId1': ['2407966'], 'universeId2': ['2046251'], 'covariance': [0.03754] }, 'factorPortfolios': { 'universe': ['2407966', '2046251'], 'portfolio': [{ 'factorId': 2, 'weights': [0.25, 0.75] }] } } # mock GsSession mocker.patch.object(GsSession.__class__, 'default_value', return_value=GsSession.get(Environment.QA, 'client_id', 'secret')) mocker.patch.object(GsSession.current, '_post', return_value=risk_model_data) # run test response = GsRiskModelApi.upload_risk_model_data( model_id='id', model_data=risk_model_data) GsSession.current._post.assert_called_with( '/risk/models/data/{id}'.format(id='id'), risk_model_data, cls=RiskModelData) assert response == risk_model_data
def upload_data(self, data: RiskModelData): """ Upload risk model data to existing risk model """ GsRiskModelApi.upload_risk_model_data(self.model.id, data)