def setUp(self): self.url = '/api/bulk/update' setProjectSimple(project='default') self.client = Client() self.attr_schema = AS.objects.create(name='Root', description = '', id=nc_id.get(), parent=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.attr_type2 = Type.objects.create(name='Memo', id=nc_id.get()) self.object_type1 = OT.objects.create(name='OT1', id=nc_id.get(), description = '', parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), description = '', parent=self.object_type1) self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema) #Bulk edit self.be_object_type1 = Tree_bulk_edit.objects.create(name=self.object_type1.name, orig_id=self.object_type1.id, parent=None, type='object_type', attr_schema=self.attr_schema) self.be_object_type2 = Tree_bulk_edit.objects.create(name=self.object_type2.name, orig_id=self.object_type2.id, parent=self.be_object_type1, type='object_type', attr_schema=self.attr_schema) self.be_attr_group1 = Tree_bulk_edit.objects.create(name=self.attr_group1.name, orig_id=self.attr_group1.id, parent=self.be_object_type1, type='attr_group', attr_schema=self.attr_schema) self.be_attr_group2 = Tree_bulk_edit.objects.create(name=self.attr_group2.name, orig_id=self.attr_group2.id, parent=self.be_object_type2, type='attr_group', attr_schema=self.attr_schema) self.be_attr1 = Tree_bulk_edit.objects.create(name=self.attr1.name, orig_id=self.attr1.id, parent=self.be_attr_group1, type='attr', attr_schema=self.attr_schema) self.be_attr2 = Tree_bulk_edit.objects.create(name=self.attr2.name, orig_id=self.attr2.id, parent=self.be_attr_group2, type='attr', attr_schema=self.attr_schema)
def setUp(self): self.url = '/api/attr/delete' self.client = Client() self.attr_schema = AS.objects.create(name='Root', description = '', id=nc_id.get(), parent=None) self.attr_schema2 = AS.objects.create(name='DiGi', description = '', id=nc_id.get(), parent=self.attr_schema) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.attr_type2 = Type.objects.create(name='Memo', id=nc_id.get()) self.object_type1 = OT.objects.create(name='All1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), parent=self.object_type1) self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) #reference attribute self.attr_type_ref = Type.objects.create(name='Reference', id=9) self.attr_type_def = Type_def.objects.create(id=nc_id.get(), type=self.attr_type_ref, schema=self.attr_schema, object_type=self.object_type1) self.attr_ref = ATTR.objects.create(name='Reference', id=nc_id.get(), type=self.attr_type_ref, group=self.attr_group2, schema=self.attr_schema, type_def=self.attr_type_def) #list attribute self.attr_type_list = Type.objects.create(name='List', id=7) self.list = Type_def.objects.create(id=nc_id.get(), type=self.attr_type_list, schema=self.attr_schema, object_type=None, name='List1') self.list2 = Type_def.objects.create(id=nc_id.get(), type=self.attr_type_list, schema=self.attr_schema, object_type=None, name='List2') self.attr_list = ATTR.objects.create(name='Attribute List', id=nc_id.get(), type=self.attr_type_list, group=self.attr_group2, schema=self.attr_schema, type_def=self.list) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema) self.aot2 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema) self.aot4 = AOT.create(attr=self.attr_ref, options=0, object_type=self.object_type1, schema=self.attr_schema2) self.aot5 = AOT.create(attr=self.attr_list, options=0, object_type=self.object_type1, schema=self.attr_schema2)
def setUp(self): self.url = '/api/analytic' setProjectSimple(project='default') self.client = Client() self.attr_schema = AS.objects.create(name='Root', id=nc_id.get(), parent=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.object_type1 = OT.objects.create(name='OT1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), parent=self.object_type1) self.object_type3 = OT.objects.create(name='OT3', id=nc_id.get(), parent=self.object_type2) self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema) self.attr_group3 = AG.objects.create(name='DiGi3', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.attr3 = ATTR.objects.create(name='Attr3', id=nc_id.get(), type=self.attr_type, group=self.attr_group3, schema=self.attr_schema) self.aot1_exist = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema, id=nc_id.get()) self.aot2_exist = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema, id=nc_id.get()) self.aot3_exist = AOT.create(attr=self.attr3, options=0, object_type=self.object_type3, schema=self.attr_schema, id=nc_id.get())
def setUp(self): self.url = '/api/aot/rebind' setProjectSimple(project='default') self.client = Client() self.attr_schema = AS.objects.create(name='Root', id=nc_id.get(), parent_id=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.attr_type2 = Type.objects.create(name='Memo', id=nc_id.get()) self.object_type1 = OT.objects.create(name='OT1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), parent=self.object_type1) self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.attr3 = ATTR.objects.create(name='Attr3', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema) self.aot2 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema) self.aot_unbind = AOT.create(attr=self.attr3, options=2, object_type=self.object_type2, schema=self.attr_schema)
def test_correct1(self): aot31_bind = AOT.create(attr=self.attr3, options=0, object_type=self.object_type1, schema=self.attr_schema) aot32_bind = AOT.create(attr=self.attr3, options=0, object_type=self.object_type2, schema=self.attr_schema) response = self.client.get(self.url, {'attr': self.attr3.id }) self.assertEqual(response.status_code, 200) self.assertEqual(json.loads(response.content)[0], \ { \ 'origin': None, \ 'leaf': False, \ 'description': None, \ 'text': self.attr_schema.name, \ 'expanded': True, \ 'type': 'AS', \ 'nc_id': str(self.attr_schema.id), \ 'iconCls': settings.ATTR_SCHEMA_ICON, \ 'attr_schema_name': self.attr_schema.name, \ 'id': 3, \ 'children': [{ \ 'origin': u'bind', \ 'leaf': False, \ 'description': None, \ 'text': self.object_type1.name, \ 'expanded': True, \ 'nc_id': str(self.object_type1.id), \ 'type': 'OT', \ 'iconCls': settings.BIND_ICON, \ 'attr_schema_name': self.attr_schema.name, \ 'id': 4, \ 'children': [{ \ 'origin': u'bind', \ 'leaf': False, \ 'description': None, \ 'text': self.object_type2.name, \ 'expanded': True, \ 'nc_id': str(self.object_type2.id), \ 'type': 'OT', \ 'iconCls': settings.BIND_ICON, \ 'attr_schema_name': self.attr_schema.name, \ 'id': 5, \ 'children': [{ \ 'origin': u'bind', \ 'leaf': True, \ 'description': None, \ 'text': self.object_type3.name, \ 'expanded': False, \ 'nc_id': str(self.object_type3.id), \ 'type': 'OT', \ 'iconCls': settings.BIND_ICON, \ 'attr_schema_name': self.attr_schema.name, \ 'id': 6 \ }] \ }] \ }] \ } \ )
def test_unknow_options_multipleOT2(self): #unknown options=-1 AOT.create(attr=self.attr3, options=-1, object_type=self.object_type2, schema=self.attr_schema) response = self.client.get(self.url, {'attr': self.attr3.id, 'attr_schema': self.attr_schema.id, 'object_types': [self.object_type1.id,self.object_type2.id,] }) self.assertEqual(response.status_code, 200) self.assertEqual(json.loads(response.content)['success'], False) self.assertNotEqual(json.loads(response.content)['errors'], None)
def test_already_bind(self): #already bind AOT.create(attr=self.attr3, options=0, object_type=self.object_type2, schema=self.attr_schema) response = self.client.get(self.url, {'attr': self.attr3.id, 'attr_schema': self.attr_schema.id, 'object_types': [self.object_type2.id,] }) self.assertEqual(json.loads(response.content)['success'], True) self.assertNotEqual(json.loads(response.content)['message'], None) aot = AOT.objects.get(attr=self.attr3, object_type=self.object_type2, schema=self.attr_schema) self.assertEqual(aot.options, 0)
def setUp(self): self.url = '/api/attr/data' self.client = Client() #AS self.attr_schema1 = AS.objects.create(name='Root', id=nc_id.get(), parent=None) self.attr_schema2 = AS.objects.create(name='Root', id=nc_id.get(), parent=self.attr_schema1) #Tag self.tag1 = Tag.objects.create(name='Tag1', description=None) self.tag2 = Tag.objects.create(name='Tag2', description=None) #Type self.attr_type1 = Type.objects.create(name='Text', id=nc_id.get()) self.attr_type2 = Type.objects.create(name='Memo', id=nc_id.get()) #OT self.object_type1 = OT.objects.create(name='OT1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), parent=self.object_type1) #AG self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema1) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema2) #ATTR self.attr11 = ATTR.objects.create(name='Attr11', id=nc_id.get(), type=self.attr_type1, group=self.attr_group1, schema=self.attr_schema1) self.attr12 = ATTR.objects.create(name='Attr12', id=nc_id.get(), type=self.attr_type1, group=self.attr_group1, schema=self.attr_schema1) self.attr21 = ATTR.objects.create(name='Attr21', id=nc_id.get(), type=self.attr_type2, group=self.attr_group2, schema=self.attr_schema2) self.attr22 = ATTR.objects.create(name='Attr22', id=nc_id.get(), type=self.attr_type2, group=self.attr_group2, schema=self.attr_schema2) #AOT self.aot11 = AOT.create(attr=self.attr11, options=0, object_type=self.object_type1, schema=self.attr_schema1) self.aot12 = AOT.create(attr=self.attr12, options=0, object_type=self.object_type2, schema=self.attr_schema1) self.aot21 = AOT.create(attr=self.attr21, options=0, object_type=self.object_type1, schema=self.attr_schema2) self.aot22 = AOT.create(attr=self.attr22, options=0, object_type=self.object_type2, schema=self.attr_schema2) #обновляем Tag prop = Property(obj=self.attr11) prop.tag.set(tags=[self.tag1,]) prop = Property(obj=self.attr22) prop.tag.set(tags=[self.tag2,]) prop = Property(obj=self.attr21) prop.tag.set(tags=[self.tag2, self.tag1,]) prop = Property(obj=self.attr12) prop.tag.set(tags=[self.tag1, self.tag2,])
def setUp(self): self.url = '/api/aot/clone' self.client = Client() self.attr_schema = AS.objects.create(name='Root', description = '', id=nc_id.get(), parent=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.object_type1 = OT.objects.create(name='All', description = '', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='All', description = '', id=nc_id.get(), parent=self.object_type1) self.attr_group1 = AG.objects.create(name='DiGi1', description = '', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', description = '', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', description = '', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', description = '', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema, id=nc_id.get()) self.aot2 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type1, schema=self.attr_schema, id=nc_id.get())
def setUp(self): self.url = '/api/search/index' self.client = Client() self.attr_schema = AS.objects.create(name='Root', id=nc_id.get(), parent=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.object_type1 = OT.objects.create(name='OT1', description='ot1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', description='ot2', id=nc_id.get(), parent=self.object_type1) self.attr_group1 = AG.objects.create(name='AG1', id=nc_id.get(), schema=self.attr_schema, description='ag1', subgroup='DIGI1') self.attr_group2 = AG.objects.create(name='AG2', id=nc_id.get(), schema=self.attr_schema, description='ag2', subgroup='DIGI2') self.attr1 = ATTR.objects.create(name='Attr1', description='attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', description='attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.aot1 = AOT.create(schema=self.attr_schema, object_type=self.object_type1, attr=self.attr1, options=0) self.aot2 = AOT.create(schema=self.attr_schema, object_type=self.object_type2, attr=self.attr2, options=0)
def setUp(self): self.url = '/api/attr/order/index' self.client = Client() self.attr_schema = AS.objects.create(name='Root', description = '', id=nc_id.get(), parent_id=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.attr_group = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.object_type = OT.objects.create(name='All1', id=nc_id.get(), parent=None) self.attr1 = ATTR.objects.create(order=1, name='Attr1', description = '', id=nc_id.get(), type=self.attr_type, group=self.attr_group, schema=self.attr_schema) self.attr2 = ATTR.objects.create(order=2, name='Attr2', description = '', id=nc_id.get(), type=self.attr_type, group=self.attr_group, schema=self.attr_schema) self.attr3 = ATTR.objects.create(order=3, name='Attr3', description = '', id=nc_id.get(), type=self.attr_type, group=self.attr_group, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type, schema=self.attr_schema) self.aot2 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type, schema=self.attr_schema) self.aot3 = AOT.create(attr=self.attr3, options=0, object_type=self.object_type, schema=self.attr_schema)
def worker(req): """ функция отвязки атрибута """ schema = req.params()['attr_schema'] object_type = req.params()['object_type'] attr = req.params()['attr'] try: #получаем связку aot = AOT.objects.get(schema=schema, object_type=object_type, attr=attr, options=2) except ObjectDoesNotExist: #привязка не найдена - создаём её AOT.create(schema=schema, object_type=object_type, attr=attr, options=0) else: #атрибут реально отвязан от данного OT => восстанавливаем наследование BIND AOT.delete(schema=schema, object_type=object_type, attr=attr) return { "success": True, "message": "Привязка успешно восстановлена"}
def worker(req): """ функция отвязки атрибута """ error = False schema = req.params()['attr_schema'] object_types = req.params()['object_types'] attr = req.params()['attr'] for object_type in object_types: if not error: #Проверяем - нет ли уже привязки данного атрибута к объектному типу try: aot = AOT.objects.get(schema=schema, object_type=object_type, attr=attr) except ObjectDoesNotExist: #привязки нет => создём привязку AOT.create(schema=schema, object_type=object_type, attr=attr, options=0) except MultipleObjectsReturned: error = True reason = u"Атрибут привязан к данному OT больше чем 1 раз[ID атрибута: %s, ID OT: %s(ошибка в БД)]" % (attr.attr, object_type.object_type,) else: if aot.options not in (0,2,): #атрибут уже привязан на данном ОТ - выкинем предупреждение и ничего не будем делать error = True reason = u"Неизвестный тип options = %s(ошибка БД)" % aot.options else: if aot.options == 0: #атрибут уже привязан на данном ОТ - пропускаем его pass #привязка найдена - проверяем её на ORIGIN if aot.options == 2: #атрибут был отвязан - привяжем его снова AOT.bind(schema=schema, object_type=object_type, attr=attr) if error: return {"success": False, "errors": reason} else: return {"success": True, "message": "атрибут %s успешно привязан" % str(attr.id)}
def worker(req): """ функция клонирования привязок """ dst_ots = req.params()['object_types'] src_ot = req.params()['object_type'] schema = req.params()['attr_schema'] group = req.params()['attr_group'] for dst_ot in dst_ots: #Получаем все BIND/UNBIND атрибуты на данном OT aots = AOT.objects.filter(options__in=[0,2], schema=schema, object_type=src_ot) for aot in aots: if aot.attr.group == group: #создаём связку AOT.create(schema=schema, object_type=dst_ot, attr=aot.attr, options=aot.options) return { "success": True, "message": "AOT's успешно клонированы" }
def setUp(self): self.url = "/api/bulk/index" setProjectSimple(project="default") self.client = Client() self.attr_schema = AS.objects.create(name="Root", description="", id=nc_id.get(), parent=None) self.attr_type = Type.objects.create(name="Text", id=nc_id.get()) self.attr_type2 = Type.objects.create(name="Memo", id=nc_id.get()) self.object_type1 = OT.objects.create(name="OT1", id=nc_id.get(), description="", parent=None) self.object_type2 = OT.objects.create(name="OT2", id=nc_id.get(), description="", parent=self.object_type1) self.attr_group1 = AG.objects.create(name="DiGi1", id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name="DiGi2", id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create( name="Attr1", id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema ) self.attr2 = ATTR.objects.create( name="Attr2", id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema ) self.aot1 = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema) self.aot1 = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema) # Bulk edit self.be_object_type1 = Tree_bulk_edit.objects.create( name=self.object_type1.name, orig_id=self.object_type1.id, parent=None, type="object_type", attr_schema=self.attr_schema, ) self.be_object_type2 = Tree_bulk_edit.objects.create( name=self.object_type2.name, orig_id=self.object_type2.id, parent=self.be_object_type1, type="object_type", attr_schema=self.attr_schema, ) self.be_attr_group1 = Tree_bulk_edit.objects.create( name=self.attr_group1.name, orig_id=self.attr_group1.id, parent=self.be_object_type1, type="attr_group", attr_schema=self.attr_schema, ) self.be_attr_group2 = Tree_bulk_edit.objects.create( name=self.attr_group2.name, orig_id=self.attr_group2.id, parent=self.be_object_type2, type="attr_group", attr_schema=self.attr_schema, ) self.be_attr1 = Tree_bulk_edit.objects.create( name=self.attr1.name, orig_id=self.attr1.id, parent=self.be_attr_group1, type="attr", attr_schema=self.attr_schema, ) self.be_attr2 = Tree_bulk_edit.objects.create( name=self.attr2.name, orig_id=self.attr2.id, parent=self.be_attr_group2, type="attr", attr_schema=self.attr_schema, )
def test_correct5(self): AS.objects.all().delete() OT.objects.all().delete() AG.objects.all().delete() ATTR.objects.all().delete() AOT.objects.all().delete() Type.objects.all().delete() self.attr_schema = AS.objects.create(name='Root', id=nc_id.get(), parent_id=None) self.attr_type = Type.objects.create(name='Text', id=nc_id.get()) self.object_type1 = OT.objects.create(name='OT1', id=nc_id.get(), parent=None) self.object_type2 = OT.objects.create(name='OT2', id=nc_id.get(), parent=self.object_type1) self.object_type3 = OT.objects.create(name='OT3', id=nc_id.get(), parent=self.object_type1) self.attr_group1 = AG.objects.create(name='DiGi1', id=nc_id.get(), schema=self.attr_schema) self.attr_group2 = AG.objects.create(name='DiGi2', id=nc_id.get(), schema=self.attr_schema) self.attr_group3 = AG.objects.create(name='DiGi3', id=nc_id.get(), schema=self.attr_schema) self.attr1 = ATTR.objects.create(name='Attr1', id=nc_id.get(), type=self.attr_type, group=self.attr_group1, schema=self.attr_schema) self.attr2 = ATTR.objects.create(name='Attr2', id=nc_id.get(), type=self.attr_type, group=self.attr_group2, schema=self.attr_schema) self.attr3 = ATTR.objects.create(name='Attr3', id=nc_id.get(), type=self.attr_type, group=self.attr_group3, schema=self.attr_schema) self.aot1_exist = AOT.create(attr=self.attr1, options=0, object_type=self.object_type1, schema=self.attr_schema) self.aot2_exist = AOT.create(attr=self.attr2, options=0, object_type=self.object_type2, schema=self.attr_schema) self.aot3_exist = AOT.create(attr=self.attr3, options=0, object_type=self.object_type3, schema=self.attr_schema) aot13_bind = AOT.create(attr=self.attr1, options=0, object_type=self.object_type3, schema=self.attr_schema) aot12_bind = AOT.create(attr=self.attr1, options=0, object_type=self.object_type2, schema=self.attr_schema) response = self.client.get(self.url, {'attr': self.attr1.id }) self.assertEqual(response.status_code, 200) self.assertEqual(json.loads(response.content)[0], \ { \ 'origin': None, \ 'leaf': False, \ 'description': None, \ 'text': self.attr_schema.name, \ 'expanded': True, \ 'type': 'AS', \ 'nc_id': str(self.attr_schema.id), \ 'iconCls': settings.ATTR_SCHEMA_ICON, \ 'attr_schema_name': self.attr_schema.name, \ 'id': 26, \ 'children': [{ \ 'origin': 'bind', \ 'leaf': False, \ 'description': None, \ 'text': self.object_type1.name, \ 'expanded': True, \ 'nc_id': str(self.object_type1.id), \ 'type': 'OT', \ 'id': 27, \ 'attr_schema_name': self.attr_schema.name, \ 'iconCls': settings.BIND_ICON, \ 'children': [{ \ 'origin': 'bind', \ 'leaf': True, \ 'description': None, \ 'text': self.object_type3.name, \ 'expanded': False, \ 'nc_id': str(self.object_type3.id), \ 'type': 'OT', \ 'id': 29, \ 'attr_schema_name': self.attr_schema.name, \ 'iconCls': settings.BIND_ICON \ },{ 'origin': 'bind', \ 'leaf': True, \ 'description': None, \ 'text': self.object_type2.name, \ 'expanded': False, \ 'nc_id': str(self.object_type2.id), \ 'type': 'OT', \ 'id': 28, \ 'attr_schema_name': self.attr_schema.name, \ 'iconCls': settings.BIND_ICON \ }] \ }] \ } \ )