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 test_create_risk_model_factor(mocker): factor = Factor.from_dict({"identifier": "Factor1", "type": "Factor"}) expected_response = Factor(identifier='Factor1', 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, '_post', return_value=factor) # run test response = GsFactorRiskModelApi.create_risk_model_factor(model_id='id', factor=factor) GsSession.current._post.assert_called_with('/risk/models/id/factors', factor, cls=Factor) assert response == expected_response
def create_factor(self, factor: RiskModelFactor) -> RiskModelFactor: """ Create a new risk model factor :param factor: factor object :return: Risk Model Factor object """ return GsFactorRiskModelApi.create_risk_model_factor(self.id, factor)