1 | |||
2 | import unittest |
||
3 | import sys |
||
4 | print("SYS:PATH", sys.path) |
||
5 | sys.path.insert(0, "python-opcua") |
||
6 | sys.path.insert(0, "opcua-widgets") |
||
7 | import os |
||
8 | print("PWD", os.getcwd()) |
||
9 | |||
10 | from opcua import ua |
||
11 | from opcua import Server |
||
12 | |||
13 | from PyQt5.QtCore import QTimer, QSettings, QModelIndex, Qt, QCoreApplication |
||
14 | from PyQt5.QtWidgets import QApplication |
||
15 | from PyQt5.QtTest import QTest |
||
16 | |||
17 | from uaclient.mainwindow import Window |
||
18 | |||
19 | |||
20 | class TestClient(unittest.TestCase): |
||
21 | def setUp(self): |
||
22 | self.server = Server() |
||
23 | url = "opc.tcp://localhost:48400/freeopcua/server/" |
||
24 | self.server.set_endpoint(url) |
||
25 | self.server.start() |
||
26 | self.client = Window() |
||
27 | self.client.ui.addrComboBox.setCurrentText(url) |
||
28 | self.client.connect() |
||
29 | |||
30 | def tearDown(self): |
||
31 | self.client.disconnect() |
||
32 | self.server.stop() |
||
33 | |||
34 | def get_attr_value(self, text): |
||
35 | idxlist = self.client.attrs_ui.model.match(self.client.attrs_ui.model.index(0, 0), Qt.DisplayRole, text, 1, Qt.MatchExactly | Qt.MatchRecursive) |
||
36 | idx = idxlist[0] |
||
37 | idx = idx.sibling(idx.row(), 1) |
||
38 | item = self.client.attrs_ui.model.itemFromIndex(idx) |
||
39 | return item.data(Qt.UserRole).value |
||
40 | |||
41 | View Code Duplication | def test_select_objects(self): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
42 | objects = self.server.nodes.objects |
||
43 | self.client.tree_ui.set_current_node("Objects") |
||
44 | self.assertEqual(objects, self.client.tree_ui.get_current_node()) |
||
45 | self.assertGreater(self.client.attrs_ui.model.rowCount(), 6) |
||
46 | print("REF COUNT", self.client.refs_ui.model.rowCount()) |
||
47 | self.assertGreater(self.client.refs_ui.model.rowCount(), 1) |
||
48 | |||
49 | data = self.get_attr_value("NodeId") |
||
50 | self.assertEqual(data, objects.nodeid) |
||
51 | |||
52 | View Code Duplication | def test_select_server_node(self): |
|
0 ignored issues
–
show
|
|||
53 | self.client.tree_ui.set_current_node("Objects") |
||
54 | self.client.tree_ui.expand_current_node() # must be expanded to load children |
||
55 | server_node = self.server.nodes.server |
||
56 | self.client.tree_ui.set_current_node("Server") |
||
57 | self.assertEqual(server_node, self.client.tree_ui.get_current_node()) |
||
58 | self.assertGreater(self.client.attrs_ui.model.rowCount(), 6) |
||
59 | self.assertGreater(self.client.refs_ui.model.rowCount(), 10) |
||
60 | |||
61 | data = self.get_attr_value("NodeId") |
||
62 | self.assertEqual(data, server_node.nodeid) |
||
63 | |||
64 | |||
65 | |||
66 | if __name__ == "__main__": |
||
67 | app = QApplication(sys.argv) |
||
68 | unittest.main() |
||
69 | |||
70 | |||
71 |