示例#1
0
    def test_positive(self):
        self.p = IntegerValidator('positive', positive=True)

        try:
            self.p.validate(0)
        except Invalid:
            self.fail('0 is positive')

        try:
            self.p.validate('0')
        except Invalid:
            self.fail('0 is positive')

        try:
            self.p.validate(123)
        except Invalid:
            self.fail('123 is positive')

        with self.assertRaises(Invalid):
            self.p.validate(-1)

        with self.assertRaises(Invalid):
            self.p.validate('0xff')

        with self.assertRaises(Invalid):
            self.p.validate('-1')
示例#2
0
class DNSZoneValidator(InputParser):
    comment = StringValidator('comment',
                              permit_empty=True,
                              length=512,
                              required=False)
    refresh = IntegerValidator('refresh',
                               positive=True,
                               min=1,
                               max=2419199,
                               required=False)
    retry = IntegerValidator('retry',
                             positive=True,
                             min=1,
                             max=2419199,
                             required=False)
    expire = IntegerValidator('expire',
                              positive=True,
                              min=1,
                              max=2419199,
                              required=False)
    ttl = IntegerValidator('ttl',
                           positive=True,
                           min=1,
                           max=2419199,
                           required=False)
    rname = StringValidator('rname',
                            permit_empty=False,
                            length=256,
                            required=False,
                            chars=string.ascii_letters + '-.' + string.digits)
    record_ttl = IntegerValidator('record_ttl',
                                  positive=True,
                                  min=1,
                                  max=2419199,
                                  required=False)
示例#3
0
class DNSRecordValidator(InputParser):
    # All common validators
    #user_id = UserIDValidator('user_id')
    #domain_id =  IntegerValidator('domain_id', positive=True, required=True)
    valid_characters = string.ascii_letters + '-.' + string.digits
    # Type is already validated at select_parser
    comment = StringValidator('comment',
                              permit_empty=True,
                              length=512,
                              required=False)
    type = StringValidator('type',
                           permit_empty=False,
                           length=5,
                           required=True,
                           chars=valid_characters)
    key = StringValidator('key',
                          permit_empty=False,
                          length=5120,
                          required=True,
                          chars=valid_characters)
    ttl = IntegerValidator('ttl',
                           required=False,
                           max=4294967295,
                           min=1,
                           positive=True)
    priority = ListValueValidator('priority',
                                  allowed_values=['', None, 0],
                                  required=False)
示例#4
0
class MXRecordValidator(DNSRecordValidator):
    """
    Validate MX-record
    """
    priority = IntegerValidator('priority',
                                positive=True,
                                min=1,
                                max=65535,
                                required=True)
    value = StringValidator('value', permit_empty=False, required=True)
示例#5
0
    def test_max(self):
        self.p = IntegerValidator('max', max=128)
        try:
            self.p.validate(0)
        except Invalid:
            self.fail('0 is smaller than 128')

        try:
            self.p.validate('0')
        except Invalid:
            self.fail('0 is smaller than 128')

        try:
            self.p.validate(128)
        except Invalid:
            self.fail('128 is valid if max=128')

        with self.assertRaises(Invalid):
            self.p.validate(129)

        with self.assertRaises(Invalid):
            self.p.validate(100000)
示例#6
0
class PortAddValidator(InputParser):
    user_id = UserIDValidator('user_id')
    service_group_id = IntegerValidator('service_group_id',
                                        positive=True,
                                        required=True)
示例#7
0
class DNSRecordQueryValidator(DNSQueryValidator):
    dns_record_id = IntegerValidator('dns_record_id',
                                     required=False,
                                     max=4294967295,
                                     min=1,
                                     positive=True)
示例#8
0
class DNSQueryValidator(InputParser):
    user_id = UserIDValidator('user_id')
    domain_id = IntegerValidator('domain_id', positive=True, required=True)
示例#9
0
 def setUp(self):
     self.p = IntegerValidator('id')
示例#10
0
class RepositoryGetValidator(InputParser):
    user_id = UserIDValidator('user_id')
    limit = IntegerValidator('limit', positive = True, required = False)
    offset = IntegerValidator('offset', positive = True, required = False)
示例#11
0
class SimpleInput(InputParser):
    name = StringValidator('name')
    number = IntegerValidator('number')
示例#12
0
 def test_default(self):
     self.p = IntegerValidator('name', default=1)
     self.assertEqual(self.p.default, 1)
示例#13
0
 def setUp(self):
     self.p = DomainValidator('domain')
示例#14
0
class TestDomainValidator(unittest.TestCase):

    def setUp(self):
        self.p = DomainValidator('domain')

    def test_init(self):
        self.assertEqual(self.p.name, 'domain')
        self.assertEqual(self.p.default, None)
        self.assertTrue(self.p.required)

    def test_valid_input(self):
        try:
            self.p.validate('example.com')
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

        try:
            self.p.validate('yx.fi')
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

        try:
            self.p.validate('asfasfasfasdfasfasdfasdfasdfasdfasdf.com')
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

        try:
            self.p.validate('xn--4caaa.fi')
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

    def test_invalid_input(self):
        with self.assertRaises(Invalid):
            self.p.validate('')

        with self.assertRaises(Invalid):
            self.p.validate(None)

        with self.assertRaises(Invalid):
            self.p.validate('a')

        with self.assertRaises(Invalid):
            self.p.validate(type)

        with self.assertRaises(Invalid):
            self.p.validate('.example.com')

        with self.assertRaises(Invalid):
            self.p.validate('example')

        with self.assertRaises(Invalid):
            self.p.validate('yx')

        with self.assertRaises(Invalid):
            self.p.validate('asdf')

        with self.assertRaises(Invalid):
            self.p.validate('asdf\x00.fi')


    def test_default(self):
        self.p = IntegerValidator('name', default=1)
        self.assertEqual(self.p.default, 1)
示例#15
0
class AnotherInput(SimpleInput):
    userid = IntegerValidator('userid')
示例#16
0
class PortIDValidator(InputParser):
    user_id = UserIDValidator('user_id')
    port_id = IntegerValidator('port_id', positive=True, required=True)
示例#17
0
class RepositoryIDValidator(InputParser):
    user_id = UserIDValidator('user_id')
    repo_id = IntegerValidator('repo_id', positive = True, required = True)
    type = ListValueValidator('type', allowed_values=['svn', 'git'], required = True)
示例#18
0
class DNSGetValidator(InputParser):
    user_id = UserIDValidator('user_id')
    domain_id = IntegerValidator('domain_id', positive=True, required=True)
    limit = IntegerValidator('limit', positive=True, required=False)
    offset = IntegerValidator('offset', positive=True, required=False)
示例#19
0
class RepositoryAddValidator(InputParser):
    user_id = UserIDValidator('user_id')
    service_group_id = IntegerValidator('service_group_id', positive = True, required = True)
    name = StringValidator('name', required = True)
    type = ListValueValidator('type', allowed_values=['svn', 'git'], required = True)
示例#20
0
class TestIntegerValidator(unittest.TestCase):

    def setUp(self):
        self.p = IntegerValidator('id')

    def test_init(self):
        self.assertEqual(self.p.name, 'id')
        self.assertEqual(self.p.default, None)
        self.assertTrue(self.p.required)

    def test_valid_input(self):
        try:
            self.p.validate(1)
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

        try:
            self.p.validate(1 * 10000000)
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')

        try:
            self.p.validate('123')
        except Invalid:
            self.fail('Valid input to should not raise "Invalid" exception')


    def test_invalid_input(self):
        with self.assertRaises(Invalid):
            self.p.validate('')

        with self.assertRaises(Invalid):
            self.p.validate(None)

        with self.assertRaises(Invalid):
            self.p.validate('a')

        with self.assertRaises(Invalid):
            self.p.validate(type)

        with self.assertRaises(Invalid):
            self.p.validate('0xff')

    def test_positive(self):
        self.p = IntegerValidator('positive', positive=True)

        try:
            self.p.validate(0)
        except Invalid:
            self.fail('0 is positive')

        try:
            self.p.validate('0')
        except Invalid:
            self.fail('0 is positive')

        try:
            self.p.validate(123)
        except Invalid:
            self.fail('123 is positive')

        with self.assertRaises(Invalid):
            self.p.validate(-1)

        with self.assertRaises(Invalid):
            self.p.validate('0xff')

        with self.assertRaises(Invalid):
            self.p.validate('-1')

    def test_max(self):
        self.p = IntegerValidator('max', max=128)
        try:
            self.p.validate(0)
        except Invalid:
            self.fail('0 is smaller than 128')

        try:
            self.p.validate('0')
        except Invalid:
            self.fail('0 is smaller than 128')

        try:
            self.p.validate(128)
        except Invalid:
            self.fail('128 is valid if max=128')

        with self.assertRaises(Invalid):
            self.p.validate(129)

        with self.assertRaises(Invalid):
            self.p.validate(100000)

    def test_default(self):
        self.p = IntegerValidator('name', default=1)
        self.assertEqual(self.p.default, 1)