Пример #1
0
    def test_create_empty_doc(self):
        # Empty schema
        schema = Schema({})
        self.assertEquals({}, schema.create())

        # Schema with only optional fields
        schema = Schema({u'a': UnicodeField(optional=True)})
        self.assertEquals({}, schema.create())
Пример #2
0
    def test_create_with_defaults(self):
        schema = Schema({u'a': UnicodeField(default=u'hello world')})
        self.assertEquals({u'a': u'hello world'}, schema.create())

        # test creating instance with given default value
        schema = Schema({
            u'a': UnicodeField(default=u'hello world'),
            u'b': UnicodeField(default=u'hello good bye')
        })
        self.assertEquals({
            u'a': u'hello venus',
            u'b': u'hello good bye'
        }, schema.create({u'a': u'hello venus'}))
Пример #3
0
    def test_Schema_with_type_key_validates_value_matching_pattern(self):
        schema = Schema({unicode: UnicodeField()})

        try:
            schema.validate({u'a': u'hello world'})
        except ValidationError:
            self.fail('Schema.validate() raised ValidationError unexpectedly')
Пример #4
0
    def test_Schema_is_partially_valid_returns_whether_value_is_partially_valid(
            self):
        schema = Schema({u'a': {u'b': UnicodeField()}})

        self.assertFalse(schema.is_partially_valid({u'a': {u'c': 42}}))
        self.assertTrue(schema.is_partially_valid({u'a': {}}))
        self.assertFalse(schema.is_partially_valid({u'a': {u'b': 42}}))
Пример #5
0
 def test_json_converter(self):
     schema = Schema({u'a': UnicodeField(), u'b': DatetimeField()})
     json_converter = JsonConverter(schema)
     result_doc = json_converter.from_schema({
         u'a':
         u'x',
         u'b':
         datetime.datetime(2011, 9, 11, 17, 29, 0)
     })
     self.assertEquals({'a': 'x', 'b': '2011-09-11T17:29:00Z'}, result_doc)
     self.assertEquals({
         'a': 'x',
         'b': '2011-09-11T17:29:00Z'
     },
                       json_converter.from_schema({
                           u'a':
                           u'x',
                           u'b':
                           datetime.datetime(2011, 9, 11, 17, 29, 0)
                       }))
     self.assertTrue(isinstance(result_doc.keys()[0], str))
     self.assertTrue(isinstance(result_doc.keys()[1], str))
     self.assertTrue(isinstance(result_doc['a'], str))
     self.assertEquals(
         {
             u'a': u'x',
             u'b': datetime.datetime(2011, 9, 11, 17, 29, 0)
         },
         json_converter.to_schema({
             'a': u'x',
             'b': '2011-09-11T17:29:00Z'
         }))
Пример #6
0
    def test_create_with_callable_builds_dict_by_calling_function(self):
        global counter
        counter = 0
        def inc():
            global counter
            counter += 1
            return counter

        schema = Schema({u'counter': IntField(default=inc)})

        self.assertEquals({u'counter': 1}, schema.create())
        self.assertEquals({u'counter': 2}, schema.create())
Пример #7
0
 def test_create_nested(self):
     schema = Schema({u'a': {u'b': UnicodeField(default=u'hello world')}})
     self.assertEquals({u'a': {u'b': u'hello world'}}, schema.create())
Пример #8
0
    def test_create_builds_nested_dict_with_default_values(self):
        schema = Schema({u'a': {u'b': UnicodeField(default=u'hello world')}})

        self.assertEquals({u'a': {u'b': u'hello world'}}, schema.create())
Пример #9
0
    def test_create_with_type_key_builds_dict_with_default_values(self):
        schema = Schema({u'a': UnicodeField(default=u'hello world'), unicode: UnicodeField(default=u'aarrgghh')})

        self.assertEquals({u'a': u'hello world'}, schema.create())
        self.assertEquals({u'a': u'hello world', u'b': u'world'}, schema.create({u'b': u'world'}))
Пример #10
0
    def test_Schema_constructor_initializes_schema_member(self):
        s = Schema({u'a': UnicodeField()})

        self.assertEquals(dict, type(s.get_schema()))
Пример #11
0
    def test_Schema_with_type_key_raises_ValidationError_on_non_matching_key(
            self):
        schema = Schema({unicode: UnicodeField()})

        self.assertRaises(ValidationError, schema.validate, {42: 'foobar'})
Пример #12
0
 def test_Schema_validates_value_matching_pattern(self):
     schema = Schema({u'a': {u'b': UnicodeField()}})
     schema.validate({u'a': {u'b': u'hello world'}})