Hi, > 2022/07/04 18:00、Sergei Shtylyov <sergei.shtylyov@xxxxxxxxx>のメール: > > On 7/4/22 11:53 AM, Takanari Hayama wrote: > [...] >>>> Add a support for enum property type to AtomicRequest. >>>> >>>> Signed-off-by: Takanari Hayama <taki@xxxxxxxxxx> >>>> --- >>>> tests/kmstest.py | 12 +++++++++++- >>>> 1 file changed, 11 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/tests/kmstest.py b/tests/kmstest.py >>>> index 11cc328b5b32..224c160e32fa 100755 >>>> --- a/tests/kmstest.py >>>> +++ b/tests/kmstest.py >>>> @@ -269,8 +269,18 @@ class AtomicRequest(pykms.AtomicReq): >>>> >>>> min, max = prop.values >>>> v = min + int((max - min) * int(v[:-1]) / 100) >>>> - else: >>>> + elif v.isnumeric(): >>>> v = int(v) >>>> + else: >>>> + prop = obj.get_prop(k) >>>> + if prop.type != pykms.PropertyType.Enum: >>>> + raise RuntimeError(f'Unsupported property type {prop.type} for value {v}') >>>> + for value, mode in prop.enums.items(): >>>> + if mode == v: >>>> + v = value >>>> + break >>>> + else: >>> >>> Hm, doesn't seem to be correctly aligned? >> >> That ‘else’ is for ‘for’-loop. Am I missing something here? > > Hm, I don't really know Python, can it actually have else for > a loop? Yes. :) > When the items are exhausted (which is immediately when the sequence is empty or an iterator raises a StopIteration exception), the suite in the else clause, if present, is executed, and the loop terminates. >From https://docs.python.org/3/reference/compound_stmts.html#the-for-statement > >>>> + raise RuntimeError(f'Enum value with name "{v}" not found in property {k}') >>>> >>>> if not isinstance(v, int): >>>> raise RuntimeError(f'Unsupported value type {type(v)} for property {k}') > > MBR, Sergey Many Thanks, Takanari Hayama, Ph.D. <taki@xxxxxxxxxx> IGEL Co., Ltd. https://www.igel.co.jp/