@@ -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