diff options
-rw-r--r-- | Lib/test/test_descr.py | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index e8ecacb..707c931 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -13,6 +13,7 @@ import warnings import weakref from copy import deepcopy +from contextlib import redirect_stdout from test import support try: @@ -1445,12 +1446,9 @@ order (MRO) for bases """ raise AttributeError return object.__setattr__(self, name, value) C.__setattr__ = mysetattr - try: + with self.assertRaises(AttributeError): a.spam = "not spam" - except AttributeError: - pass - else: - self.fail("expected AttributeError") + self.assertEqual(a.spam, "spam") class D(C): pass @@ -2431,12 +2429,8 @@ order (MRO) for bases """ else: self.fail("no TypeError from dict(%r)" % badarg) - try: + with self.assertRaises(TypeError): dict({}, {}) - except TypeError: - pass - else: - self.fail("no TypeError from dict({}, {})") class Mapping: # Lacks a .keys() method; will be added later. @@ -3589,12 +3583,8 @@ order (MRO) for bases """ pass A.__call__ = A() - try: + with self.assertRaises(RecursionError): A()() - except RecursionError: - pass - else: - self.fail("Recursion limit should have been reached for __call__()") def test_delete_hook(self): # Testing __del__ hook... @@ -4440,20 +4430,14 @@ order (MRO) for bases """ def test_file_fault(self): # Testing sys.stdout is changed in getattr... - test_stdout = sys.stdout class StdoutGuard: def __getattr__(self, attr): sys.stdout = sys.__stdout__ - raise RuntimeError("Premature access to sys.stdout.%s" % attr) - sys.stdout = StdoutGuard() - try: - print("Oops!") - except RuntimeError: - pass - else: - self.fail("Didn't raise RuntimeError") - finally: - sys.stdout = test_stdout + raise RuntimeError(f"Premature access to sys.stdout.{attr}") + + with redirect_stdout(StdoutGuard()): + with self.assertRaises(RuntimeError): + print("Oops!") def test_vicious_descriptor_nonsense(self): # Testing vicious_descriptor_nonsense... |