summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakanari Hayama <taki@igel.co.jp>2022-07-04 11:56:30 +0900
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-31 20:13:40 +0300
commitb673ea4d97c39ee8ea80574ef3bd1ba8a59450fa (patch)
tree479f752861755e1ed45ad435925bfae94b1f26c3
parent780538db85f68288a58fb166d015e4b38b5ac633 (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-xtests/kmstest.py14
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}')