improved commandhandler

- analyze_<group> returns now a dict
- change_<group> has no more values arguments.
  values may be read with change.readValues(), which leaves more
  freedom to the programmer, especially if the values do not need
  to be read before a change

Change-Id: I67b70302eaf9bbdac107df61123062fa133d501d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/22047
Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
2019-12-16 17:23:20 +01:00
parent fcad78a682
commit a876eba5f6
5 changed files with 213 additions and 219 deletions

View File

@@ -62,7 +62,7 @@ class Data:
tag, data = self.data.pop(0)
print('pop(%s) %r' % (tag, data))
if tag != expected:
raise ValueError('expected tag %s' % expected)
raise ValueError('expected tag %s, not %s' % (expected, tag))
return data
def empty(self):
@@ -123,16 +123,18 @@ def test_CmdHandler():
def analyze_group1(self, val):
assert data.pop('val') == val
self.simple = data.pop('simple')
return dict(simple=data.pop('simple'))
def analyze_group2(self, gval, sval, dval):
assert data.pop('gsv') == (gval, sval, dval)
self.real, self.text = data.pop('rt')
real, text = data.pop('rt')
return dict(real=real, text=text)
def change_group2(self, new, gval, sval, dval):
def change_group2(self, change):
gval, sval, dval = change.readValues()
assert data.pop('old') == (gval, sval, dval)
assert data.pop('self') == (self.real, self.text)
assert data.pop('new') == (new.real, new.text)
assert data.pop('new') == (change.real, change.text)
return data.pop('changed')
data = Data()