def _validator(form, field): log.debug('starting in version_validator: field.data is %s' % field.data) # empty input if field.data is None: return rulesVersionList = field.data.split(",") isListOfVersions = len(rulesVersionList) > 1 for rule_version in rulesVersionList: try: op, operand = get_op(rule_version) if isListOfVersions and op != operator.eq: raise ValidationError('Invalid input for %s .Relational Operators are not allowed' ' when providing a list of versions.' % field.name) version = MozillaVersion(operand) except ValidationError: raise except ValueError: raise ValidationError("ValueError. Couldn't parse version for %s. Invalid '%s' input value" % (field.name, field.name)) except: raise ValidationError('Invalid input for %s . No Operator or Match found.' % field.name) # MozillaVersion doesn't error on empty strings if not hasattr(version, 'version'): raise ValidationError("Couldn't parse the version for %s. No attribute 'version' was detected." % field.name)
def version_validator(field_value): logger.debug('starting in version_validator: version data is %s' % field_value) if not isinstance(field_value, str_types): return True # empty input is fine if field_value is None or field_value == '': return True rules_version_list = field_value.split(",") is_list_of_versions = len(rules_version_list) > 1 for rule_version in rules_version_list: try: op, operand = get_op(rule_version) if is_list_of_versions and op != operator.eq: raise jsonschema.ValidationError('Invalid input for %s .Relational Operators are not allowed' ' when providing a list of versions.' % field_value) version = MozillaVersion(operand) except jsonschema.ValidationError: raise except ValueError: raise jsonschema.ValidationError("ValueError. Couldn't parse version for %s. Invalid '%s' input value" % (field_value, field_value)) except: raise jsonschema.ValidationError('Invalid input for %s . No Operator or Match found.' % field_value) # MozillaVersion doesn't error on empty strings if not hasattr(version, 'version'): raise jsonschema.ValidationError("Couldn't parse the version for %s. No attribute 'version' was detected." % field_value) return True
def _validator(form, field): log.debug('starting in version_validator: field.data is %s' % field.data) # empty input if field.data is None: return rulesVersionList = field.data.split(",") isListOfVersions = len(rulesVersionList) > 1 for rule_version in rulesVersionList: try: op, operand = get_op(rule_version) if isListOfVersions and op != operator.eq: raise ValidationError( 'Invalid input for %s .Relational Operators are not allowed' ' when providing a list of versions.' % field.name) version = MozillaVersion(operand) except ValidationError: raise except ValueError: raise ValidationError( "ValueError. Couldn't parse version for %s. Invalid '%s' input value" % (field.name, field.name)) except: raise ValidationError( 'Invalid input for %s . No Operator or Match found.' % field.name) # MozillaVersion doesn't error on empty strings if not hasattr(version, 'version'): raise ValidationError( "Couldn't parse the version for %s. No attribute 'version' was detected." % field.name)
def version_validator(field_value): logger.debug('starting in version_validator: version data is %s' % field_value) if not isinstance(field_value, str_types): return True # empty input is fine if field_value is None or field_value == '': return True rules_version_list = field_value.split(",") is_list_of_versions = len(rules_version_list) > 1 for rule_version in rules_version_list: try: op, operand = get_op(rule_version) if is_list_of_versions and op != operator.eq: raise JsonSchemaValidationError('Invalid input for %s .Relational Operators are not allowed' ' when providing a list of versions.' % field_value) version = MozillaVersion(operand) except JsonSchemaValidationError: raise except ValueError: raise JsonSchemaValidationError("ValueError. Couldn't parse version for %s. Invalid '%s' input value" % (field_value, field_value)) except: raise JsonSchemaValidationError('Invalid input for %s . No Operator or Match found.' % field_value) # MozillaVersion doesn't error on empty strings if not hasattr(version, 'version'): raise JsonSchemaValidationError("Couldn't parse the version for %s. No attribute 'version' was detected." % field_value) return True
def _validator(form, field): log.debug('starting in operator_validator: field.data is %s' % field.data) # empty input is fine if field.data is None: return try: op, operand = get_op(field.data) log.debug('Got (%s, %s) from get_op', op, operand) except TypeError: # get_op field returns None if no operator or no match, can't be unpacked raise ValidationError("Invalid input for %s. No Operator or Match found." % field.name)
def operator_validator(field_value): logger.debug('starting in operator_validator: buildID is %s' % field_value) if not isinstance(field_value, str_types): return True # empty input is fine if field_value is None or field_value == '': return True try: op, operand = get_op(field_value) logger.debug('Got (%s, %s) from get_op', op, operand) except TypeError: # get_op field returns None if no operator or no match, can't be unpacked raise JsonSchemaValidationError("Invalid input for buildID : %s. No Operator or Match found." % field_value) return True
def operator_validator(field_value): logger.debug('starting in operator_validator: buildID is %s' % field_value) if not isinstance(field_value, str_types): return True # empty input is fine if field_value is None or field_value == '': return True try: op, operand = get_op(field_value) logger.debug('Got (%s, %s) from get_op', op, operand) except TypeError: # get_op field returns None if no operator or no match, can't be unpacked raise jsonschema.ValidationError("Invalid input for buildID : %s. No Operator or Match found." % field_value) return True
def _validator(form, field): log.debug('starting in version_validator: field.data is %s' % field.data) # empty input if field.data is None: return try: op, operand = get_op(field.data) version = MozillaVersion(operand) except ValueError: raise ValidationError("ValueError. Couldn't parse version for %s. Invalid '%s' input value" % (field.name, field.name)) except: raise ValidationError('Invalid input for %s . No Operator or Match found.' % field.name) # MozillaVersion doesn't error on empty strings if not hasattr(version, 'version'): raise ValidationError("Couldn't parse the version for %s. No attribute 'version' was detected." % field.name)
def operator_validator(field_value): logger.debug("starting in operator_validator: buildID is %s" % field_value) if not isinstance(field_value, str_types): return True # empty input is fine if field_value is None or field_value == "": return True try: op, operand = get_op(field_value) logger.debug("Got (%s, %s) from get_op", op, operand) except TypeError: # get_op field returns None if no operator or no match, can't be unpacked raise jsonschema.ValidationError( "Invalid input for buildID : %s. No Operator or Match found." % field_value) try: int(strip_operator(field_value)) except ValueError: raise jsonschema.ValidationError( "Invalid input for buildID: must be an integer.") return True
def test_greater_than(self): self.assertEqual((operator.gt, '20150314092653'), get_op('>20150314092653')) self.assertEqual((operator.gt, '30.0b1'), get_op('>30.0b1')) self.assertEqual((operator.gt, '30.0.1'), get_op('>30.0.1'))
def test_less_than(self): self.assertEqual((operator.lt, '20150314092653'), get_op('<20150314092653')) self.assertEqual((operator.lt, '30.0b1'), get_op('<30.0b1')) self.assertEqual((operator.lt, '30.0.1'), get_op('<30.0.1'))
def test_equality(self): self.assertEqual((operator.eq, '20150314092653'), get_op('20150314092653')) self.assertEqual((operator.eq, '30.0b1'), get_op('30.0b1')) self.assertEqual((operator.eq, '30.0.1'), get_op('30.0.1'))
def test_lesser_or_equal(self): self.assertEqual((operator.le, '20150314092653'), get_op('<=20150314092653')) self.assertEqual((operator.le, '30.0b1'), get_op('<=30.0b1')) self.assertEqual((operator.le, '30.0.1'), get_op('<=30.0.1'))
def test_greater_or_equal(self): self.assertEqual((operator.ge, '20150314092653'), get_op('>=20150314092653')) self.assertEqual((operator.ge, '30.0b1'), get_op('>=30.0b1')) self.assertEqual((operator.ge, '30.0.1'), get_op('>=30.0.1'))