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)
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)
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)
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']}))
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')
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__)
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')
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())
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)
class TestPerson(Model): age = IntegerField('The Age') name = TextField('The name')
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()), [])
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']))
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'})