summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDong-hee Na <donghee.na@python.org>2022-01-08 08:14:40 (GMT)
committerGitHub <noreply@github.com>2022-01-08 08:14:40 (GMT)
commit45d44b950f1dab0ef90d0a8f4fa75ffaae71500b (patch)
tree95cde421fbc6555f3af48e468b53769aca610d2e
parente63066cfed27511c9b786d61761f87f7a532571a (diff)
downloadcpython-45d44b950f1dab0ef90d0a8f4fa75ffaae71500b.zip
cpython-45d44b950f1dab0ef90d0a8f4fa75ffaae71500b.tar.gz
cpython-45d44b950f1dab0ef90d0a8f4fa75ffaae71500b.tar.bz2
bpo-46299: Improve test_descr (GH-30475)
-rw-r--r--Lib/test/test_descr.py36
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...