390
|
1
|
|
2 import unittest
|
|
3 import os
|
|
4 import sys
|
|
5 import time
|
|
6
|
|
7 try:
|
|
8 otherpath = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'python','other'))
|
|
9 sys.path.insert(0, otherpath)
|
|
10 import diagrameditor
|
|
11
|
392
|
12 from PyQt5.QtWidgets import QApplication, QGraphicsItem
|
390
|
13 from PyQt5.QtTest import QTest
|
392
|
14 from PyQt5.QtCore import Qt, QTimer, QMimeData, QPointF
|
|
15 from PyQt5.QtGui import QDropEvent
|
390
|
16 skip_it = False
|
|
17
|
|
18 # When creating an app per testcase, this fails horribly..
|
|
19 app = QApplication(sys.argv)
|
|
20 except ImportError as e:
|
|
21 skip_it = True
|
|
22
|
|
23
|
|
24
|
|
25 class DiagramEditorTestCase(unittest.TestCase):
|
|
26 def setUp(self):
|
|
27 if skip_it:
|
|
28 self.skipTest('No qt5 or X server')
|
|
29 return
|
|
30 #print('Instance:', QApplication.instance())
|
|
31 self.main = diagrameditor.Main()
|
|
32 self.main.show()
|
|
33 QTest.qWaitForWindowActive(self.main)
|
|
34
|
|
35 def tearDown(self):
|
|
36 QTimer.singleShot(100, app.quit)
|
|
37 app.exec_()
|
|
38
|
|
39 def cmdNewModel(self):
|
|
40 # Press ctrl+N:
|
|
41 QTest.keyClick(self.main, Qt.Key_N, Qt.ControlModifier)
|
|
42
|
|
43 def dragItemIntoScene(self):
|
|
44 library = self.main.findChild(diagrameditor.LibraryWidget, 'LibraryWidget')
|
|
45 editor = self.main.findChild(diagrameditor.EditorGraphicsView, 'Editor')
|
|
46 #ilibrary.
|
|
47 QTest.mousePress(library, Qt.LeftButton)
|
|
48 print(editor, type(editor))
|
|
49 QTest.mouseMove(editor)
|
|
50 QTest.mouseRelease(editor, Qt.LeftButton)
|
392
|
51 mimedata = QMimeData()
|
|
52 mimedata.setData('component/name', 'Block:blk'.encode('ascii'))
|
|
53 de = QDropEvent(QPointF(10, 10), Qt.CopyAction, mimedata,
|
|
54 Qt.LeftButton,
|
|
55 Qt.NoModifier)
|
|
56 editor.dropEvent(de)
|
|
57
|
|
58 def resizePlacedItem(self):
|
|
59 i = self.main.findChild(QGraphicsItem, "sizer_top_right")
|
|
60 print(i)
|
390
|
61
|
|
62 def testScenario1(self):
|
|
63 self.cmdNewModel()
|
|
64 self.dragItemIntoScene()
|
392
|
65 self.resizePlacedItem()
|
390
|
66
|
|
67 def testB(self):
|
|
68 print('b')
|
|
69
|
|
70
|
|
71 if __name__ == '__main__':
|
|
72 unittest.main()
|