Example #1
0
 def _validate_params(self, param_value, kwarg, value, required_params):
     if not param_value:  # is a valid param but not necessarily required
         message = '{} is not a valid parameter for {}'.format(param_value, kwarg)
         raise errors.OctokitParameterError(message)
     if param_value.get('enum') and value not in param_value.get('enum'):  # is a valid option of the enum
         message = '{} is not a valid option for {}; must be one of {}'.format(value, kwarg, param_value.get('enum'))
         raise errors.OctokitParameterError(message)
     if kwarg in required_params and not value:  # required param has a value
         message = '{} must have a value'.format(kwarg)
         raise errors.OctokitParameterError(message)
Example #2
0
 def validate_enum(self, parameter, value, properties):
     if properties.get(parameter).get(
             "enum") and value not in properties.get(parameter).get("enum"):
         message = "{} is not a valid option for {}; must be one of {}".format(
             value, parameter,
             properties.get(parameter).get("enum"))
         raise errors.OctokitParameterError(message)
Example #3
0
 def _validate_required_params(self, required_params, cached_kwargs):
     for p in required_params:
         if '.' in p:
             utils.walk_path(cached_kwargs, p.split('.'))
             continue
         if p not in cached_kwargs:  # has all required
             message = '{} is a required parameter'.format(p)
             raise errors.OctokitParameterError(message)
Example #4
0
 def validate_other_parameters(self, parameters, valid_parameters, properties):
     for parameter, value in parameters.items():
         try:
             assert parameter in valid_parameters
         except AssertionError:
             message = "{} is not a valid parameter".format(parameter)
             raise errors.OctokitParameterError(message)
         if properties.get(parameter):
             self.validate_enum(parameter, value, properties)
Example #5
0
 def _validate(self, kwargs, params):
     cached_kwargs = dict(ChainMap(kwargs, self._attribute_cache['url']))
     required_params = [k for k, v in params.items() if v.get('required')]
     for p in required_params:
         if p not in cached_kwargs:  # has all required
             message = '{} is a required parameter'.format(p)
             raise errors.OctokitParameterError(message)
     for kwarg, value in kwargs.items():
         param_value = params.get(kwarg)
         self._validate_params(param_value, kwarg, value, required_params)
Example #6
0
 def type_match(self, symbol, expected_type):
     types = {"array": list, "object": dict, "string": str}
     if not isinstance(symbol, types.get(expected_type)):
         name = symbol.__class__.__name__
         message = f"{name} type does not match the schema type of {expected_type} for the data of {symbol}"
         raise errors.OctokitParameterError(message)
Example #7
0
 def validate_list(self, parameters, schema):
     if not parameters and schema.get("items").get("required"):
         message = "property is missing required items"
         raise errors.OctokitParameterError(message)
     for parameter in parameters:
         self.validate_schema(parameter, schema.get("items", schema))
Example #8
0
 def _raise_must_have_value(self, required_parameter):
     message = "{} must have a value".format(required_parameter)
     raise errors.OctokitParameterError(message)
Example #9
0
 def _raise_required_parameter(self, param):
     message = "{} is a required parameter".format(param)
     raise errors.OctokitParameterError(message)