Added test for Python written models returning new objects without keeping reference to them.
Reviewed by Lauro Moura <lauro.neto@openbossa.org> eviewed by Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
parent
4630f41f6a
commit
6b720050ef
6 changed files with 101 additions and 0 deletions
51
tests/pysidetest/modelview_test.py
Normal file
51
tests/pysidetest/modelview_test.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import unittest
|
||||
from testbinding import TestView
|
||||
from PySide.QtCore import QAbstractListModel, QObject, QModelIndex
|
||||
|
||||
'''Tests model/view relationship.'''
|
||||
|
||||
object_name = 'test object'
|
||||
|
||||
class MyObject(QObject):
|
||||
pass
|
||||
|
||||
class ListModelKeepsReference(QAbstractListModel):
|
||||
def rowCount(self, parent=QModelIndex()):
|
||||
return 1
|
||||
|
||||
def data(self, index, role):
|
||||
self.obj = MyObject()
|
||||
self.obj.setObjectName(object_name)
|
||||
return self.obj
|
||||
|
||||
class ListModelDoesntKeepsReference(QAbstractListModel):
|
||||
def rowCount(self, parent=QModelIndex()):
|
||||
return 1
|
||||
|
||||
def data(self, index, role):
|
||||
obj = MyObject()
|
||||
obj.setObjectName(object_name)
|
||||
return obj
|
||||
|
||||
class ModelViewTest(unittest.TestCase):
|
||||
|
||||
def testListModelKeepsReference(self):
|
||||
model = ListModelKeepsReference()
|
||||
view = TestView(model)
|
||||
obj = view.getData()
|
||||
self.assertEqual(type(obj), MyObject)
|
||||
self.assertEqual(obj.objectName(), object_name)
|
||||
|
||||
def testListModelDoesntKeepsReference(self):
|
||||
model = ListModelDoesntKeepsReference()
|
||||
view = TestView(model)
|
||||
obj = view.getData()
|
||||
self.assertEqual(type(obj), MyObject)
|
||||
self.assertEqual(obj.objectName(), object_name)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue