Esempio n. 1
0
 def create(cls,
            coverage: Union[CoverageType, str],
            id_: str,
            name: str,
            term: Union[Term, str],
            universe_identifier: Union[UniverseIdentifier, str],
            vendor: str,
            version: float,
            entitlements: Union[Entitlements, Dict] = None,
            description: str = None):
     """ Creates new factor risk model and uploads factor risk model object to Marquee
         :param coverage: coverage of risk model asset universe
         :param id_: risk model id (cannot be changed)
         :param name: risk model name
         :param term: horizon term
         :param universe_identifier: identifier used in asset universe upload (cannot be changed)
         :param vendor: risk model vendor
         :param version: version of model
         :param entitlements: entitlements associated with risk model
         :param description: risk model description
         :return: Factor Risk Model object  """
     new_model = RiskModelBuilder(coverage,
                                  id_,
                                  name,
                                  term,
                                  universe_identifier,
                                  vendor,
                                  version,
                                  entitlements=entitlements,
                                  description=description)
     GsRiskModelApi.create_risk_model(new_model)
     return FactorRiskModel(id_)
Esempio n. 2
0
 def upload(self):
     """ Upload current Factor Risk Model object to Marquee """
     new_model = RiskModelBuilder(self.coverage,
                                  self.id,
                                  self.name,
                                  self.term,
                                  self.universe_identifier,
                                  self.vendor,
                                  self.version,
                                  entitlements=self.entitlements,
                                  description=self.description)
     GsRiskModelApi.create_risk_model(new_model)
Esempio n. 3
0
def test_create_risk_model(mocker):
    model = RiskModel.from_dict({
        "coverage": "Global",
        "id": "WW_TEST_MODEL",
        "name": "World Wide Medium Term Test Model",
        "term": "Medium",
        "vendor": "Goldman Sachs",
        "universeIdentifier": "gsid",
        "version": 4
    })

    expected_response = RiskModel(coverage='Global',
                                  id='WW_TEST_MODEL',
                                  name='World Wide Medium Term Test Model',
                                  term='Medium',
                                  vendor='Goldman Sachs',
                                  version=4,
                                  universe_identifier='gsid')

    # 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=model)

    # run test
    response = GsRiskModelApi.create_risk_model(model)
    GsSession.current._post.assert_called_with('/risk/models',
                                               model,
                                               cls=RiskModel)
    assert response == expected_response
Esempio n. 4
0
 def save(self):
     """ Upload current Risk Model object to Marquee """
     model = RiskModelBuilder(
         self.coverage,
         self.id,
         self.name,
         self.term,
         self.universe_identifier,
         self.vendor,
         self.version,
         type_=self.type,
         description=self.description,
         entitlements=self.entitlements,
         expected_update_time=self.expected_update_time.strftime('%H:%M:%S')
         if self.expected_update_time else None)
     try:
         GsRiskModelApi.create_risk_model(model)
     except MqRequestError:
         GsRiskModelApi.update_risk_model(model)