Re: [PATCH 1/3] tests: Support enum property type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux