Passed
Push — master ( 72629f...de3f23 )
by Olivier
03:10
created

PostponeReferences.__exit__()   B

Complexity

Conditions 5

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 5

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 5
c 1
b 0
f 1
dl 0
loc 6
ccs 6
cts 6
cp 1
crap 5
rs 8.5454
1
2 1
import os.path
3
4 1
import opcua
5
6 1
from opcua.server.standard_address_space.standard_address_space_part3 import create_standard_address_space_Part3
7 1
from opcua.server.standard_address_space.standard_address_space_part4 import create_standard_address_space_Part4
8 1
from opcua.server.standard_address_space.standard_address_space_part5 import create_standard_address_space_Part5
9 1
from opcua.server.standard_address_space.standard_address_space_part8 import create_standard_address_space_Part8
10 1
from opcua.server.standard_address_space.standard_address_space_part9 import create_standard_address_space_Part9
11 1
from opcua.server.standard_address_space.standard_address_space_part10 import create_standard_address_space_Part10
12 1
from opcua.server.standard_address_space.standard_address_space_part11 import create_standard_address_space_Part11
13 1
from opcua.server.standard_address_space.standard_address_space_part13 import create_standard_address_space_Part13
14
15 1
class PostponeReferences(object):
16 1
    def __init__(self, server):
17 1
        self.server = server
18 1
        self.postponed_refs = None
19 1
        self.postponed_nodes = None
20
        #self.add_nodes = self.server.add_nodes
21
22 1
    def add_nodes(self,nodes):
23 1
        self.postponed_nodes.extend(self.server.try_add_nodes(nodes))
24
25 1
    def add_references(self, refs):
26 1
        self.postponed_refs.extend(self.server.try_add_references(refs))
27
        # no return
28
29 1
    def __enter__(self):
30 1
        self.postponed_refs = []
31 1
        self.postponed_nodes = []
32 1
        return self
33
34 1
    def __exit__(self, exc_type, exc_val, exc_tb):
35 1
        if exc_type is None and exc_val is None:
36 1
            remaining_nodes = list(self.server.try_add_nodes(self.postponed_nodes))
37 1
            assert len(remaining_nodes) == 0, remaining_nodes
38 1
            remaining_refs = list(self.server.try_add_references(self.postponed_refs))
39 1
            assert len(remaining_refs) == 0, remaining_refs
40
41 1
def fill_address_space(nodeservice):
42 1
    with PostponeReferences(nodeservice) as server:
43 1
        create_standard_address_space_Part3(server)
44 1
        create_standard_address_space_Part4(server)
45 1
        create_standard_address_space_Part5(server)
46 1
        create_standard_address_space_Part8(server)
47 1
        create_standard_address_space_Part9(server)
48 1
        create_standard_address_space_Part10(server)
49 1
        create_standard_address_space_Part11(server)
50
        create_standard_address_space_Part13(server)
51