コード例 #1
0
ファイル: forms.py プロジェクト: aksareen/balrog
 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)
コード例 #2
0
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
コード例 #3
0
 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)
コード例 #4
0
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
コード例 #5
0
 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)
コード例 #6
0
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
コード例 #7
0
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
コード例 #8
0
 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)
コード例 #9
0
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
コード例 #10
0
ファイル: test_comparison.py プロジェクト: mozmark/balrog
 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'))
コード例 #11
0
 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'))
コード例 #12
0
 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'))
コード例 #13
0
 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'))
コード例 #14
0
 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'))
コード例 #15
0
ファイル: test_comparison.py プロジェクト: mozmark/balrog
 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'))
コード例 #16
0
ファイル: test_comparison.py プロジェクト: mozmark/balrog
 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'))
コード例 #17
0
ファイル: test_comparison.py プロジェクト: mozmark/balrog
 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'))
コード例 #18
0
ファイル: test_comparison.py プロジェクト: mozmark/balrog
 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'))
コード例 #19
0
 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'))