diff options
author | Takanari Hayama <taki@igel.co.jp> | 2022-07-04 11:56:30 +0900 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-07-31 20:13:40 +0300 |
commit | b673ea4d97c39ee8ea80574ef3bd1ba8a59450fa (patch) | |
tree | 479f752861755e1ed45ad435925bfae94b1f26c3 | |
parent | 780538db85f68288a58fb166d015e4b38b5ac633 (diff) |
kmstest: Support enum property type
Add a support for enum property type to AtomicRequest.
Signed-off-by: Takanari Hayama <taki@igel.co.jp>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rwxr-xr-x | tests/kmstest.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/kmstest.py b/tests/kmstest.py index 3e53def..a932bc8 100755 --- a/tests/kmstest.py +++ b/tests/kmstest.py @@ -275,8 +275,20 @@ 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 not prop: + raise RuntimeError(f'Property {k} not supported by object {obj}') + if prop.type != pykms.PropertyType.Enum: + raise RuntimeError(f'Unsupported property type {prop.type} for value {v}') + for value, name in prop.enums.items(): + if name == v: + v = value + break + else: + 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}') |