class ReferenceCount(UsesQApplication): def setUp(self): super(ReferenceCount, self).setUp() self.scene = QGraphicsScene() def tearDown(self): super(ReferenceCount, self).tearDown() def beforeTest(self): points = [QPointF(0, 0), QPointF(100, 100), QPointF(0, 100)] pol = self.scene.addPolygon(QPolygonF(points)) self.assert_(isinstance(pol, QGraphicsPolygonItem)) self.wrp = weakref.ref(pol, pol_del) #refcount need be 3 because one ref for QGraphicsScene, and one to rect obj self.assertEqual(sys.getrefcount(pol), 3) def testReferenceCount(self): global destroyedRect global destroyedPol self.beforeTest() rect = self.scene.addRect(10.0, 10.0, 10.0, 10.0) self.assert_(isinstance(rect, QGraphicsRectItem)) self.wrr = weakref.ref(rect, rect_del) #refcount need be 3 because one ref for QGraphicsScene, and one to rect obj self.assertEqual(sys.getrefcount(rect), 3) del rect #not destroyed because one ref continue in QGraphicsScene self.assertEqual(destroyedRect, False) self.assertEqual(destroyedPol, False) del self.scene #QGraphicsScene was destroyed and this destroy internal ref to rect self.assertEqual(destroyedRect, True) self.assertEqual(destroyedPol, True)
class QColorOnSetBrush(UsesQApplication): '''Test case for passing a QColor directly to setBrush''' def setUp(self): #Acquire resources super(QColorOnSetBrush, self).setUp() self.scene = QGraphicsScene() poly = QPolygonF() self.item = self.scene.addPolygon(poly) self.color = QColor('black') def tearDown(self): #Release resources del self.color del self.item del self.scene super(QColorOnSetBrush, self).tearDown() def testQColor(self): #QGraphicsAbstractShapeItem.setBrush(QColor) self.item.setBrush(self.color) self.assertEqual(QBrush(self.color), self.item.brush())
class AddItem(UsesQApplication): '''Tests for QGraphicsScene.add*''' qapplication = True def setUp(self): #Acquire resources super(AddItem, self).setUp() self.scene = QGraphicsScene() # While the scene does not inherits from QWidget, requires # an application to make the internals work. def tearDown(self): #Release resources del self.scene super(AddItem, self).tearDown() def testEllipse(self): #QGraphicsScene.addEllipse item = self.scene.addEllipse(100, 100, 100, 100) self.assertTrue(isinstance(item, QGraphicsEllipseItem)) def testLine(self): #QGraphicsScene.addLine item = self.scene.addLine(100, 100, 200, 200) self.assertTrue(isinstance(item, QGraphicsLineItem)) def testPath(self): #QGraphicsScene.addPath item = self.scene.addPath(QPainterPath()) self.assertTrue(isinstance(item, QGraphicsPathItem)) def testPixmap(self): #QGraphicsScene.addPixmap item = self.scene.addPixmap(QPixmap()) self.assertTrue(isinstance(item, QGraphicsPixmapItem)) def testPolygon(self): #QGraphicsScene.addPolygon points = [QPointF(0, 0), QPointF(100, 100), QPointF(0, 100)] item = self.scene.addPolygon(QPolygonF(points)) self.assertTrue(isinstance(item, QGraphicsPolygonItem)) def testRect(self): #QGraphicsScene.addRect item = self.scene.addRect(100, 100, 100, 100) self.assertTrue(isinstance(item, QGraphicsRectItem)) def testSimpleText(self): #QGraphicsScene.addSimpleText item = self.scene.addSimpleText('Monty Python 42') self.assertTrue(isinstance(item, QGraphicsSimpleTextItem)) def testText(self): #QGraphicsScene.addText item = self.scene.addText('Monty Python 42') self.assertTrue(isinstance(item, QGraphicsTextItem)) def testWidget(self): #QGraphicsScene.addWidget # XXX: printing some X11 error when using under PyQt4 item = self.scene.addWidget(QPushButton()) self.assertTrue(isinstance(item, QGraphicsProxyWidget))
class AddItem(UsesQApplication): """Tests for QGraphicsScene.add*""" qapplication = True def setUp(self): # Acquire resources super(AddItem, self).setUp() self.scene = QGraphicsScene() # While the scene does not inherits from QWidget, requires # an application to make the internals work. def tearDown(self): # Release resources del self.scene super(AddItem, self).tearDown() def testEllipse(self): # QGraphicsScene.addEllipse item = self.scene.addEllipse(100, 100, 100, 100) self.assertTrue(isinstance(item, QGraphicsEllipseItem)) def testLine(self): # QGraphicsScene.addLine item = self.scene.addLine(100, 100, 200, 200) self.assertTrue(isinstance(item, QGraphicsLineItem)) def testPath(self): # QGraphicsScene.addPath item = self.scene.addPath(QPainterPath()) self.assertTrue(isinstance(item, QGraphicsPathItem)) def testPixmap(self): # QGraphicsScene.addPixmap item = self.scene.addPixmap(QPixmap()) self.assertTrue(isinstance(item, QGraphicsPixmapItem)) def testPolygon(self): # QGraphicsScene.addPolygon points = [QPointF(0, 0), QPointF(100, 100), QPointF(0, 100)] item = self.scene.addPolygon(QPolygonF(points)) self.assertTrue(isinstance(item, QGraphicsPolygonItem)) def testRect(self): # QGraphicsScene.addRect item = self.scene.addRect(100, 100, 100, 100) self.assertTrue(isinstance(item, QGraphicsRectItem)) def testSimpleText(self): # QGraphicsScene.addSimpleText item = self.scene.addSimpleText("Monty Python 42") self.assertTrue(isinstance(item, QGraphicsSimpleTextItem)) def testText(self): # QGraphicsScene.addText item = self.scene.addText("Monty Python 42") self.assertTrue(isinstance(item, QGraphicsTextItem)) def testWidget(self): # QGraphicsScene.addWidget # XXX: printing some X11 error when using under PyQt4 item = self.scene.addWidget(QPushButton()) self.assertTrue(isinstance(item, QGraphicsProxyWidget))