Skip to content

Commit 9357c99

Browse files
Nebukadnezaoroulet
authored andcommitted
Adapt tests to new event-emitting-node behavior / API
1 parent 1e9fd36 commit 9357c99

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

tests/tests_server.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -250,24 +250,24 @@ def test_eventgenerator_BaseEvent_Identifier(self):
250250
check_eventgenerator_SourceServer(self, evgen)
251251

252252
def test_eventgenerator_sourceServer_Node(self):
253-
evgen = self.opc.get_event_generator(source=opcua.Node(self.opc.iserver.isession, ua.NodeId(ua.ObjectIds.Server)))
253+
evgen = self.opc.get_event_generator(emitting_node=opcua.Node(self.opc.iserver.isession, ua.NodeId(ua.ObjectIds.Server)))
254254
check_eventgenerator_BaseEvent(self, evgen)
255255
check_eventgenerator_SourceServer(self, evgen)
256256

257257
def test_eventgenerator_sourceServer_NodeId(self):
258-
evgen = self.opc.get_event_generator(source=ua.NodeId(ua.ObjectIds.Server))
258+
evgen = self.opc.get_event_generator(emitting_node=ua.NodeId(ua.ObjectIds.Server))
259259
check_eventgenerator_BaseEvent(self, evgen)
260260
check_eventgenerator_SourceServer(self, evgen)
261261

262262
def test_eventgenerator_sourceServer_ObjectIds(self):
263-
evgen = self.opc.get_event_generator(source=ua.ObjectIds.Server)
263+
evgen = self.opc.get_event_generator(emitting_node=ua.ObjectIds.Server)
264264
check_eventgenerator_BaseEvent(self, evgen)
265265
check_eventgenerator_SourceServer(self, evgen)
266266

267267
def test_eventgenerator_sourceMyObject(self):
268268
objects = self.opc.get_objects_node()
269269
o = objects.add_object(3, 'MyObject')
270-
evgen = self.opc.get_event_generator(source=o)
270+
evgen = self.opc.get_event_generator(emitting_node=o)
271271
check_eventgenerator_BaseEvent(self, evgen)
272272
check_event_generator_object(self, evgen, o)
273273

@@ -276,8 +276,10 @@ def test_eventgenerator_source_collision(self):
276276
o = objects.add_object(3, 'MyObject')
277277
event = BaseEvent(sourcenode=o.nodeid)
278278
evgen = self.opc.get_event_generator(event, ua.ObjectIds.Server)
279+
evgen.event.SourceNode = o.nodeid
280+
evgen.event.SourceName = o.get_browse_name().Name
279281
check_eventgenerator_BaseEvent(self, evgen)
280-
check_event_generator_object(self, evgen, o)
282+
check_event_generator_object(self, evgen, o, emitting_node=opcua.Node(self.opc.iserver.isession, ua.ObjectIds.Server))
281283

282284
def test_eventgenerator_InheritedEvent(self):
283285
evgen = self.opc.get_event_generator(ua.ObjectIds.AuditEventType)
@@ -523,14 +525,17 @@ def check_eventgenerator_SourceServer(test, evgen):
523525
test.assertGreaterEqual(len(refs), 1)
524526

525527

526-
def check_event_generator_object(test, evgen, obj):
528+
def check_event_generator_object(test, evgen, obj, emitting_node=None):
527529
test.assertEqual(evgen.event.SourceName, obj.get_browse_name().Name)
528530
test.assertEqual(evgen.event.SourceNode, obj.nodeid)
529-
test.assertEqual(obj.get_event_notifier(), {ua.EventNotifier.SubscribeToEvents})
530-
531-
refs = obj.get_referenced_nodes(ua.ObjectIds.GeneratesEvent, ua.BrowseDirection.Forward, ua.NodeClass.ObjectType, False)
532-
test.assertEqual(len(refs), 1)
533-
test.assertEqual(refs[0].nodeid, evgen.event.EventType)
531+
if not emitting_node:
532+
test.assertEqual(obj.get_event_notifier(), {ua.EventNotifier.SubscribeToEvents})
533+
refs = obj.get_referenced_nodes(ua.ObjectIds.GeneratesEvent, ua.BrowseDirection.Forward, ua.NodeClass.ObjectType, False)
534+
else:
535+
test.assertEqual(emitting_node.get_event_notifier(), {ua.EventNotifier.SubscribeToEvents})
536+
refs = emitting_node.get_referenced_nodes(ua.ObjectIds.GeneratesEvent, ua.BrowseDirection.Forward, ua.NodeClass.ObjectType, False)
537+
538+
test.assertIn(evgen.event.EventType, [x.nodeid for x in refs])
534539

535540

536541
def check_eventgenerator_BaseEvent(test, evgen):

tests/tests_subscriptions.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -373,11 +373,13 @@ def test_events_default(self):
373373
def test_events_MyObject(self):
374374
objects = self.srv.get_objects_node()
375375
o = objects.add_object(3, 'MyObject')
376-
evgen = self.srv.get_event_generator(source=o)
376+
evgen = self.srv.get_event_generator()
377+
evgen.event.SourceNode=o.nodeid
378+
evgen.event.SourceName=o.get_browse_name().Name
377379

378380
myhandler = MySubHandler()
379381
sub = self.opc.create_subscription(100, myhandler)
380-
handle = sub.subscribe_events(o)
382+
handle = sub.subscribe_events()
381383

382384
tid = datetime.utcnow()
383385
msg = "this is my msg "
@@ -399,7 +401,7 @@ def test_events_MyObject(self):
399401
def test_events_wrong_source(self):
400402
objects = self.srv.get_objects_node()
401403
o = objects.add_object(3, 'MyObject')
402-
evgen = self.srv.get_event_generator(source=o)
404+
evgen = self.srv.get_event_generator(emitting_node=o)
403405

404406
myhandler = MySubHandler()
405407
sub = self.opc.create_subscription(100, myhandler)
@@ -422,7 +424,7 @@ def test_events_CustomEvent(self):
422424

423425
myhandler = MySubHandler()
424426
sub = self.opc.create_subscription(100, myhandler)
425-
handle = sub.subscribe_events(evtypes=etype)
427+
handle = sub.subscribe_events(sourcenode=ua.ObjectIds.Server, evtypes=etype)
426428

427429
propertynum = 2
428430
propertystring = "This is my test"
@@ -453,16 +455,18 @@ def test_events_CustomEvent_MyObject(self):
453455
objects = self.srv.get_objects_node()
454456
o = objects.add_object(3, 'MyObject')
455457
etype = self.srv.create_custom_event_type(2, 'MyEvent', ua.ObjectIds.BaseEventType, [('PropertyNum', ua.VariantType.Float), ('PropertyString', ua.VariantType.String)])
456-
evgen = self.srv.get_event_generator(etype, o)
458+
evgen = self.srv.get_event_generator(etype, emitting_node=o)
459+
evgen.event.SourceNode = o.nodeid
457460

458461
myhandler = MySubHandler()
459462
sub = self.opc.create_subscription(100, myhandler)
460-
handle = sub.subscribe_events(o, etype)
463+
handle = sub.subscribe_events(sourcenode=o, evtypes=etype)
461464

462465
propertynum = 2
463466
propertystring = "This is my test"
464467
evgen.event.PropertyNum = propertynum
465468
evgen.event.PropertyString = propertystring
469+
evgen.event.SourceNode = o.nodeid
466470
tid = datetime.utcnow()
467471
msg = "this is my msg "
468472
evgen.trigger(tid, msg)

0 commit comments

Comments
 (0)