示例#1
0
 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)
示例#2
0
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
示例#3
0
 def upload_data(self, data: RiskModelData):
     """ Upload risk model data to existing risk model """
     GsRiskModelApi.upload_risk_model_data(self.model.id, data)