Пример #1
0
 def test_creating_uuids(self):
     model_class = self.mk_model({
         'age': IntegerField('An age'),
         'name': TextField('A name'),
     })
     data = {'age': 1, 'name': 'foo'}
     model = model_class(data)
     self.assertTrue(model.uuid)
Пример #2
0
 def test_to_dict(self):
     model_class = self.mk_model({
         'age': IntegerField('An age'),
         'name': TextField('A name'),
     })
     data = {'age': 1, 'name': 'foo', '_version': version_info}
     model = model_class(data)
     self.assertEqual(dict(model), data)
Пример #3
0
class TestFallbackPerson(Model):
    age = IntegerField('The Age')
    name = TextField('The name',
                     fallbacks=[
                         SingleFieldFallback('nick'),
                         SingleFieldFallback('obsolete'),
                     ])
    nick = TextField('The nickname', required=False)
    obsolete = TextField('Some obsolete field', required=False)
Пример #4
0
 def test_list_field(self):
     model_class = self.mk_model(
         {'tags': ListField('list field', fields=(IntegerField('int'), ))})
     self.assertRaises(ConfigError, model_class, {'tags': ['a']})
     self.assertRaises(ConfigError, model_class, {'tags': [2.0]})
     self.assertRaises(ConfigError, model_class, {'tags': [None]})
     self.assertTrue(model_class({'tags': []}))
     self.assertTrue(model_class({'tags': [1, 2, 3]}))
     self.assertTrue(model_class({'tags': ['1']}))
Пример #5
0
 def test_respecting_uuids(self):
     model_class = self.mk_model({
         'uuid': 'foo',
         'age': IntegerField('An age'),
         'name': TextField('A name'),
     })
     data = {'age': 1, 'name': 'foo'}
     model = model_class(data)
     self.assertEqual(model.uuid, 'foo')
Пример #6
0
 def test_doc_generation(self):
     model_class = self.mk_model({
         'age': IntegerField('An age'),
         'name': TextField('A name'),
     })
     model = model_class({'age': 1, 'name': 'foo'})
     self.assertTrue(':param int age:' in model_class.__doc__)
     self.assertTrue(':param int age:' in model.__doc__)
     self.assertTrue(':param str name:' in model_class.__doc__)
     self.assertTrue(':param str name:' in model.__doc__)
Пример #7
0
 def test_mapping_type(self):
     model_class = self.mk_model({
         'age': IntegerField('An age')
     })
     mapping_type = self.workspace.im.get_mapping_type(model_class)
     self.assertEqual(
         mapping_type.get_index(),
         '%s-%s' % (
             self.workspace.index_prefix,
             self.workspace.repo.active_branch.name))
     self.assertEqual(mapping_type.get_model(), model_class)
     self.assertEqual(
         mapping_type.get_mapping_type_name(),
         'confmodel-config-TempModelType')
Пример #8
0
 def test_update(self):
     model_class = self.mk_model({
         'uuid': 'foo',
         'age': IntegerField('An age'),
         'name': TextField('A name'),
     })
     data = {'age': 1, 'name': 'foo'}
     model = model_class(data)
     self.assertFalse(model.is_read_only())
     new_model = model.update({'age': 20})
     self.assertEqual(new_model.age, 20)
     self.assertEqual(new_model.uuid, model.uuid)
     self.assertEqual(new_model.name, model.name)
     self.assertTrue(model.is_read_only())
     self.assertFalse(new_model.is_read_only())
Пример #9
0
 def test_indexable(self):
     model_class = self.mk_model({
         'age': IntegerField('An age')
     })
     mapping_type = self.workspace.im.get_mapping_type(model_class)
     self.assertEqual(mapping_type.get_es(), self.workspace.im.es)
     self.assertEqual(mapping_type.get_mapping(), {
         'properties': {
             'age': {'type': 'integer'},
             'uuid': {'type': 'string'},
             '_version': model_class._fields['_version'].mapping,
         }
     })
     model_instance = model_class({'age': 1})
     self.assertEqual(
         mapping_type.extract_document('foo', model_instance)['age'],
         1)
Пример #10
0
class TestPerson(Model):
    age = IntegerField('The Age')
    name = TextField('The name')
Пример #11
0
 def test_get_indexable(self):
     model_class = self.mk_model({
         'age': IntegerField('An age')
     })
     mapping_type = self.workspace.im.get_mapping_type(model_class)
     self.assertEqual(list(mapping_type.get_indexable()), [])
Пример #12
0
    def test_model(self):
        model_class = self.mk_model({'age': IntegerField('An age')})

        model = model_class({'age': 1})
        self.assertEqual(set(model._fields.keys()),
                         set(['_version', 'age', 'uuid']))
Пример #13
0
    def test_validation(self):
        model_class = self.mk_model({'age': IntegerField('An age')})

        model = model_class({'age': 1})
        self.assertEqual(model.age, 1)
        self.assertRaises(ConfigError, model_class, {'age': 'foo'})