Example #1
0
    def save_factor_metadata(self, factor_metadata: RiskModelFactor):
        """ Add metadata to a factor in a risk model

        :param factor_metadata: factor metadata object
        """
        try:
            GsFactorRiskModelApi.update_risk_model_factor(
                self.id, factor_metadata)
        except MqRequestError:
            GsFactorRiskModelApi.create_risk_model_factor(
                self.id, factor_metadata)
Example #2
0
 def update_factor(self, factor_id: str,
                   factor: RiskModelFactor) -> RiskModelFactor:
     """ Update existing risk model factor
         :param factor_id: factor identifier associated with risk model to update
         :param factor: factor object associated with risk model
         :return: Risk Model Factor object """
     return GsFactorRiskModelApi.update_risk_model_factor(
         self.id, factor_id, factor)
Example #3
0
def test_update_risk_model_factor(mocker):
    factor = Factor.from_dict({"identifier": "factor", "type": "Factor"})

    # mock GsSession
    mocker.patch.object(GsSession.__class__,
                        'default_value',
                        return_value=GsSession.get(Environment.QA, 'client_id',
                                                   'secret'))
    mocker.patch.object(GsSession.current, '_put', return_value=factor)

    # run test
    response = GsFactorRiskModelApi.update_risk_model_factor(model_id='id',
                                                             factor=factor)
    GsSession.current._put.assert_called_with(
        '/risk/models/{id}/factors/{identifier}'.format(id='id',
                                                        identifier='factor'),
        factor,
        cls=Factor)
    assert response == factor