Esempio n. 1
0
    def test_excluded_keys(self):
        # First prove that the keys we're about to test would normally pass
        field = AttributesField()
        try:
            field.validate_key('href')
            field.validate_key('src')
        except ValidationError:
            self.fail('Keys that pass have failed.')

        # Now show that they no longer pass if explicitly exclude
        field = AttributesField(excluded_keys=['href', 'src', ])

        with self.assertRaises(ValidationError):
            field.validate_key('href')
        with self.assertRaises(ValidationError):
            field.validate_key('src')
Esempio n. 2
0
    def test_validate_key(self):
        field = AttributesField()
        # Normal, expected patterns
        try:
            field.validate_key('target')
            field.validate_key('a')
            field.validate_key('A')
            field.validate_key('a1')
            field.validate_key('A1')
            field.validate_key('a-1')
            field.validate_key('a_1')
            field.validate_key('a-A1_')
        except ValidationError:
            self.fail('Keys that pass have failed.')

        # We don't accept these though...
        with self.assertRaises(ValidationError):
            field.validate_key('-abc')
        with self.assertRaises(ValidationError):
            field.validate_key('_abc')
        with self.assertRaises(ValidationError):
            field.validate_key('31-flavors')
        with self.assertRaises(ValidationError):
            field.validate_key('__init__')
        with self.assertRaises(ValidationError):
            field.validate_key('cöordinate')
        with self.assertRaises(ValidationError):
            field.validate_key('<tag>')
        with self.assertRaises(ValidationError):
            field.validate_key('#hash')