Skip to content

Commit e9aa442

Browse files
committed
Use setUpClass/tearDownClass instead of setUp/tearDown
1 parent 966479a commit e9aa442

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

Lib/test/support/__init__.py

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2870,24 +2870,30 @@ def wrapper(*args, **kwargs):
28702870
_re_enable_terminal_color(original_fn, variables)
28712871
return wrapper
28722872

2873-
def force_not_colorized_test_class(cls):
2874-
"""Force the terminal not to be colorized."""
2875-
original_setup = cls.setUp
2876-
original_teardown = cls.tearDown
2877-
2878-
@functools.wraps(cls.setUp)
2879-
def setUp_wrapper(self, *args, **kwargs):
2880-
self._original_fn, self._variables = _disable_terminal_color()
28812873

2882-
return original_setup(self, *args, **kwargs)
2883-
2884-
@functools.wraps(cls.tearDown)
2885-
def tearDown_wrapper(self, *args, **kwargs):
2886-
_re_enable_terminal_color(self._original_fn, self._variables)
2887-
return original_teardown(self, *args, **kwargs)
2888-
2889-
cls.setUp = setUp_wrapper
2890-
cls.tearDown = tearDown_wrapper
2874+
def force_not_colorized_test_class(cls):
2875+
"""Force the terminal not to be colorized for the entire test class."""
2876+
original_setUpClass = cls.setUpClass
2877+
original_tearDownClass = cls.tearDownClass
2878+
2879+
@classmethod
2880+
@functools.wraps(cls.setUpClass)
2881+
def new_setUpClass(cls):
2882+
original_fn, variables = _disable_terminal_color()
2883+
cls._original_fn = original_fn
2884+
cls._variables = variables
2885+
if original_setUpClass:
2886+
original_setUpClass()
2887+
2888+
@classmethod
2889+
@functools.wraps(cls.tearDownClass)
2890+
def new_tearDownClass(cls):
2891+
if original_tearDownClass:
2892+
original_tearDownClass()
2893+
_re_enable_terminal_color(cls._original_fn, cls._variables)
2894+
2895+
cls.setUpClass = new_setUpClass
2896+
cls.tearDownClass = new_tearDownClass
28912897
return cls
28922898

28932899

0 commit comments

Comments
 (0)