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