improve handling of module init methods

- complain when super call is omitted (this is a common programming
  error in Mixins)
- redesign waiting mechanism for startup

+ rename MultiEvent method 'setfunc' to 'get_trigger'

Change-Id: Ica27a75597321f2571a604a7a55448cffb1bec5e
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/27369
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
2021-12-22 15:19:21 +01:00
parent f13e29aad2
commit 8f7fb1e45b
14 changed files with 94 additions and 78 deletions

View File

@ -26,8 +26,8 @@ from secop.lib.multievent import MultiEvent
def test_without_timeout():
m = MultiEvent()
s1 = m.setfunc(name='s1')
s2 = m.setfunc(name='s2')
s1 = m.get_trigger(name='s1')
s2 = m.get_trigger(name='s2')
assert not m.wait(0)
assert m.deadline() is None
assert m.waiting_for() == {'s1', 's2'}
@ -45,10 +45,10 @@ def test_with_timeout(monkeypatch):
m = MultiEvent()
assert m.deadline() == 0
m.name = 's1'
s1 = m.setfunc(10)
s1 = m.get_trigger(10)
assert m.deadline() == 1010
m.name = 's2'
s2 = m.setfunc(20)
s2 = m.get_trigger(20)
assert m.deadline() == 1020
current_time += 21
assert not m.wait(0)