bpo-46299: Improve test_descr (GH-30475)

This commit is contained in:
Dong-hee Na 2022-01-08 17:14:40 +09:00 committed by GitHub
parent e63066cfed
commit 45d44b950f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 26 deletions

View File

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