Completed
Push — master ( 4faa3a...3c67fb )
by Olivier
59s
created

Tester.test_add_variable_double()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 8
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 8
loc 8
rs 9.4285
cc 1
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
12
from PyQt5.QtCore import QTimer, QSettings, QModelIndex, Qt, QCoreApplication
13
from PyQt5.QtWidgets import QApplication
14
from PyQt5.QtTest import QTest
15
16
from uamodeler.uamodeler import UaModeler
17
from uawidgets.new_node_dialogs import NewNodeBaseDialog, NewUaObjectDialog, NewUaVariableDialog, NewUaMethodDialog
18
19
20
class Tester(unittest.TestCase):
21
    def setUp(self):
22
        self.modeler = UaModeler()
23
        self.modeler.ui.actionNew.activate(0)
24
        #modeler.show()
25
        #sys.exit(app.exec_())
26
27
    def tearDown(self):
28
        self.modeler.server.stop()
29
30
    def test_add_folder(self):
31
        objects = self.modeler.server.nodes.objects
32
        self.modeler.tree_ui.set_current_node("Objects")
33
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
34
        #self.modeler.ui.actionAddFolder.activate(0)  # we cannot call this, we need a link to dialog
35
        dia = NewNodeBaseDialog(self.modeler, "Add Folder", self.modeler.server)
36
        args = dia.get_args()
37
        new_node = objects.add_folder(*args)
38
        self.assertIn(new_node, objects.get_children())
39
40
    def test_add_variable_double(self):
41
        objects = self.modeler.server.nodes.objects
42
        self.modeler.tree_ui.set_current_node("Objects")
43
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
44
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value=9.99, dtype=ua.ObjectIds.Double)
45
        args = dia.get_args()
46
        new_node = objects.add_variable(*args)
47
        self.assertIn(new_node, objects.get_children())
48
49
    def test_add_variable_double_list(self):
50
        objects = self.modeler.server.nodes.objects
51
        self.modeler.tree_ui.set_current_node("Objects")
52
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
53
        val = [9.9, 5.5, 1.2]
54
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value=val, dtype=ua.ObjectIds.Double)
55
        args = dia.get_args()
56
        new_node = objects.add_variable(*args)
57
        self.assertIn(new_node, objects.get_children())
58
        self.assertEqual(val, new_node.get_value())
59
60
    def test_add_variable_string(self):
61
        objects = self.modeler.server.nodes.objects
62
        self.modeler.tree_ui.set_current_node("Objects")
63
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
64
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value="lkjkl", dtype=ua.ObjectIds.String)
65
        args = dia.get_args()
66
        new_node = objects.add_variable(*args)
67
        self.assertIn(new_node, objects.get_children())
68
69
    def test_add_variable_extobj(self):
70
        objects = self.modeler.server.nodes.objects
71
        self.modeler.tree_ui.set_current_node("Objects")
72
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
73
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value="lkjkl", dtype=ua.ObjectIds.Structure)
74
        args = dia.get_args()
75
        new_node = objects.add_variable(*args)
76
        self.assertIn(new_node, objects.get_children())
77
78
    def test_add_variable_bytes(self):
79
        objects = self.modeler.server.nodes.objects
80
        self.modeler.tree_ui.set_current_node("Objects")
81
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
82
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value=b"lkjkl", dtype=ua.ObjectIds.ByteString)
83
        args = dia.get_args()
84
        new_node = objects.add_variable(*args)
85
        self.assertIn(new_node, objects.get_children())
86
87
    def test_add_variable_float_fail(self):
88
        objects = self.modeler.server.nodes.objects
89
        self.modeler.tree_ui.set_current_node("Objects")
90
        self.assertEqual(objects, self.modeler.tree_ui.get_current_node())
91
        dia = NewUaVariableDialog(self.modeler, "Add Variable", self.modeler.server, default_value=b"lkjkl", dtype=ua.ObjectIds.Float)
92
        with self.assertRaises(ValueError):
93
            args = dia.get_args()
94
            new_node = objects.add_variable(*args)
95
96
97
98
99
100
101
if __name__ == "__main__":
102
    app = QApplication(sys.argv)
103
    unittest.main()
104
105
106