mirror of https://github.com/python/cpython
bpo-46299: Improve test_descr (GH-30475)
This commit is contained in:
parent
e63066cfed
commit
45d44b950f
|
@ -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...
|
||||
|
|
Loading…
Reference in New Issue