Esempio n. 1
0
 def test_ownrelations(self):
     """
     Validates whether relations to the object itself are working
     """
     pdisk = TestDisk()
     pdisk.name = 'parent'
     pdisk.save()
     cdisk1 = TestDisk()
     cdisk1.name = 'child 1'
     cdisk1.size = 100
     cdisk1.parent = pdisk
     cdisk1.save()
     cdisk2 = TestDisk()
     cdisk2.name = 'child 2'
     cdisk2.size = 100
     cdisk2.parent = pdisk
     cdisk2.save()
     self.assertEqual(len(pdisk.children), 2, 'There should be 2 children ({0})'.format(len(pdisk.children)))
     self.assertEqual(cdisk1.parent.name, 'parent', 'Parent should be loaded correctly')
     data = DataList({'object': TestDisk,
                      'data': DataList.select.GUIDS,
                      'query': {'type': DataList.where_operator.AND,
                                'items': [('parent.name', DataList.operator.EQUALS, 'parent')]}}).data
     datalist = DataObjectList(data, TestDisk)
     self.assertEqual(len(datalist), 2, 'There should be two items ({0})'.format(len(datalist)))
     cdisk2.parent = None
     cdisk2.save()
     data = DataList({'object': TestDisk,
                      'data': DataList.select.GUIDS,
                      'query': {'type': DataList.where_operator.AND,
                                'items': [('parent.name', DataList.operator.EQUALS, 'parent')]}}).data
     datalist = DataObjectList(data, TestDisk)
     self.assertEqual(len(datalist), 1, 'There should be one item ({0})'.format(len(datalist)))