summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/decorators.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 4248c461c88..f0afa9aea84 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -304,13 +304,16 @@ def add_test_categories(cat):
if isinstance(func, type) and issubclass(func, unittest2.TestCase):
raise Exception(
"@add_test_categories can only be used to decorate a test method")
- if hasattr(func, "categories"):
- cat.extend(func.categories)
- # For instance methods, the attribute must be set on the actual function.
- if inspect.ismethod(func):
- func.__func__.categories = cat
- else:
- func.categories = cat
+
+ # Update or set the categories attribute. For instance methods, the
+ # attribute must be set on the actual function.
+ func_for_attr = func
+ if inspect.ismethod(func_for_attr):
+ func_for_attr = func.__func__
+ if hasattr(func_for_attr, "categories"):
+ cat.extend(func_for_attr.categories)
+ setattr(func_for_attr, "categories", cat)
+
return func
return impl
OpenPOWER on IntegriCloud