summaryrefslogtreecommitdiff
path: root/tests/basics/attrtuple2.py
diff options
context:
space:
mode:
authorYoctopuce dev <dev@yoctopuce.com>2025-03-20 12:03:59 +0100
committerDamien George <damien@micropython.org>2025-04-21 17:37:39 +1000
commit0d2c18c299936a34cdeb43e2ef9cbdaecb35c610 (patch)
tree3ad96985de946fc79a95de3b7dfb481cb7bec79b /tests/basics/attrtuple2.py
parent8faa6bafdc76a6ee307551ef4d88fd2d54db04b2 (diff)
py/objstr: Fix handling of OP_MODULO with namedtuple.
This fix handles attrtuple as well, eg. os.uname(). A test case has been added in basics/attrtuple2.py. Fixes issue #16969. Signed-off-by: Yoctopuce dev <dev@yoctopuce.com>
Diffstat (limited to 'tests/basics/attrtuple2.py')
-rw-r--r--tests/basics/attrtuple2.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/basics/attrtuple2.py b/tests/basics/attrtuple2.py
new file mode 100644
index 000000000..081d24b6a
--- /dev/null
+++ b/tests/basics/attrtuple2.py
@@ -0,0 +1,25 @@
+# test os.uname() attrtuple, if available
+try:
+ import os
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+try:
+ u = os.uname()
+except AttributeError:
+ print("SKIP")
+ raise SystemExit
+
+# test printing of attrtuple
+print(str(u).find("machine=") > 0)
+
+# test read attr
+print(isinstance(u.machine, str))
+
+# test str modulo operator for attrtuple
+impl_str = ("%s " * len(u)) % u
+test_str = ""
+for val in u:
+ test_str += val + " "
+print(impl_str == test_str)