diff mbox series

[scarthgap,2.8,1/1] COW: Fix hardcoded magic numbers and work with python 3.13

Message ID bebecffef63a3ac60420b5347d549f71b00dc151.1772924048.git.yoann.congal@smile.fr
State New
Headers show
Series [scarthgap,2.8,1/1] COW: Fix hardcoded magic numbers and work with python 3.13 | expand

Commit Message

Yoann Congal March 7, 2026, 10:55 p.m. UTC
From: Richard Purdie <richard.purdie@linuxfoundation.org>

The COW tests started failing on python 3.13. Looks like it is time
to fix the FIXME and drop the magic numbers!

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2e6608cec508b3b9bab3530f83e70665ff638182)
[YC: This fixes the bb.tests.cow.COWTestCase.testOriginalTestSuite
bitbake-selftest on the newly added fedora-41 workers]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
 lib/bb/COW.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/lib/bb/COW.py b/lib/bb/COW.py
index 76bc08a3e..4af03c54a 100644
--- a/lib/bb/COW.py
+++ b/lib/bb/COW.py
@@ -36,8 +36,9 @@  class COWDictMeta(COWMeta):
     __marker__ = tuple()
 
     def __str__(cls):
-        # FIXME: I have magic numbers!
-        return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
+        ignored_keys = set(["__count__", "__doc__", "__module__", "__firstlineno__", "__static_attributes__"])
+        keys = set(cls.__dict__.keys()) - ignored_keys
+        return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(keys))
 
     __repr__ = __str__
 
@@ -161,8 +162,9 @@  class COWDictMeta(COWMeta):
 
 class COWSetMeta(COWDictMeta):
     def __str__(cls):
-        # FIXME: I have magic numbers!
-        return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
+        ignored_keys = set(["__count__", "__doc__", "__module__", "__firstlineno__", "__static_attributes__"])
+        keys = set(cls.__dict__.keys()) - ignored_keys
+        return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(keys))
 
     __repr__ = __str__