def test_setdefault_env_not_exists(self, mock_environ_get): mock_environ_get.return_value = None retval = object() cfg = Config(schema=Schema()) field = Field(env='ASDF', key='field') field._default = retval field.__setdefault__(cfg) assert cfg._data == {'field': retval} mock_environ_get.assert_called_once_with('ASDF')
def test_setdefault_env_exists_invalid(self, mock_environ_get): env = mock_environ_get.return_value = object() retval = object() cfg = Config(schema=Schema()) field = Field(env='ASDF', key='field') field.validate = MagicMock(side_effect=ValueError()) field._default = retval with pytest.raises(ValidationError): field.__setdefault__(cfg) field.validate.assert_called_once_with(cfg, env)
def test_setdefault_env_exists_invalid_validationerror(self, mock_environ_get): env = mock_environ_get.return_value = object() retval = object() cfg = Config(schema=Schema()) field = Field(env='ASDF', key='field') err = ValidationError(cfg, field, ValueError('asdf')) field.validate = MagicMock(side_effect=err) field._default = retval with pytest.raises(ValidationError) as exc: field.__setdefault__(cfg) assert exc.value is err