Skip to content

Commit c88fd85

Browse files
committed
Add similar test for attribute errors
1 parent 2d6233e commit c88fd85

File tree

1 file changed

+62
-5
lines changed

1 file changed

+62
-5
lines changed

Lib/test/test_exceptions.py

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1508,7 +1508,7 @@ def f():
15081508
self.assertNotIn("somethingverywronghehe", err.getvalue())
15091509

15101510
def test_name_error_bad_suggestions_do_not_trigger_for_small_names(self):
1511-
vvv = mom = w = id = python = None
1511+
vvv = mom = w = id = pytho = None
15121512

15131513
with self.subTest(name="b"):
15141514
try:
@@ -1521,7 +1521,7 @@ def test_name_error_bad_suggestions_do_not_trigger_for_small_names(self):
15211521
self.assertNotIn("mom", err.getvalue())
15221522
self.assertNotIn("'id'", err.getvalue())
15231523
self.assertNotIn("'w'", err.getvalue())
1524-
self.assertNotIn("'python'", err.getvalue())
1524+
self.assertNotIn("'pytho'", err.getvalue())
15251525

15261526
with self.subTest(name="v"):
15271527
try:
@@ -1534,7 +1534,7 @@ def test_name_error_bad_suggestions_do_not_trigger_for_small_names(self):
15341534
self.assertNotIn("mom", err.getvalue())
15351535
self.assertNotIn("'id'", err.getvalue())
15361536
self.assertNotIn("'w'", err.getvalue())
1537-
self.assertNotIn("'python'", err.getvalue())
1537+
self.assertNotIn("'pytho'", err.getvalue())
15381538

15391539
with self.subTest(name="m"):
15401540
try:
@@ -1547,7 +1547,7 @@ def test_name_error_bad_suggestions_do_not_trigger_for_small_names(self):
15471547
self.assertNotIn("mom", err.getvalue())
15481548
self.assertNotIn("'id'", err.getvalue())
15491549
self.assertNotIn("'w'", err.getvalue())
1550-
self.assertNotIn("'python'", err.getvalue())
1550+
self.assertNotIn("'pytho'", err.getvalue())
15511551

15521552
with self.subTest(name="py"):
15531553
try:
@@ -1560,7 +1560,7 @@ def test_name_error_bad_suggestions_do_not_trigger_for_small_names(self):
15601560
self.assertNotIn("mom", err.getvalue())
15611561
self.assertNotIn("'id'", err.getvalue())
15621562
self.assertNotIn("'w'", err.getvalue())
1563-
self.assertNotIn("'python'", err.getvalue())
1563+
self.assertNotIn("'pytho'", err.getvalue())
15641564

15651565
def test_name_error_suggestions_do_not_trigger_for_too_many_locals(self):
15661566
def f():
@@ -1716,6 +1716,63 @@ class A:
17161716

17171717
self.assertNotIn("blech", err.getvalue())
17181718

1719+
def test_getattr_error_bad_suggestions_do_not_trigger_for_small_names(self):
1720+
class MyClass:
1721+
vvv = mom = w = id = pytho = None
1722+
1723+
with self.subTest(name="b"):
1724+
try:
1725+
MyClass.b
1726+
except AttributeError as exc:
1727+
with support.captured_stderr() as err:
1728+
sys.__excepthook__(*sys.exc_info())
1729+
self.assertNotIn("you mean", err.getvalue())
1730+
self.assertNotIn("vvv", err.getvalue())
1731+
self.assertNotIn("mom", err.getvalue())
1732+
self.assertNotIn("'id'", err.getvalue())
1733+
self.assertNotIn("'w'", err.getvalue())
1734+
self.assertNotIn("'pytho'", err.getvalue())
1735+
1736+
with self.subTest(name="v"):
1737+
try:
1738+
MyClass.v
1739+
except AttributeError as exc:
1740+
with support.captured_stderr() as err:
1741+
sys.__excepthook__(*sys.exc_info())
1742+
self.assertNotIn("you mean", err.getvalue())
1743+
self.assertNotIn("vvv", err.getvalue())
1744+
self.assertNotIn("mom", err.getvalue())
1745+
self.assertNotIn("'id'", err.getvalue())
1746+
self.assertNotIn("'w'", err.getvalue())
1747+
self.assertNotIn("'pytho'", err.getvalue())
1748+
1749+
with self.subTest(name="m"):
1750+
try:
1751+
MyClass.m
1752+
except AttributeError as exc:
1753+
with support.captured_stderr() as err:
1754+
sys.__excepthook__(*sys.exc_info())
1755+
self.assertNotIn("you mean", err.getvalue())
1756+
self.assertNotIn("vvv", err.getvalue())
1757+
self.assertNotIn("mom", err.getvalue())
1758+
self.assertNotIn("'id'", err.getvalue())
1759+
self.assertNotIn("'w'", err.getvalue())
1760+
self.assertNotIn("'pytho'", err.getvalue())
1761+
1762+
with self.subTest(name="py"):
1763+
try:
1764+
MyClass.py
1765+
except AttributeError as exc:
1766+
with support.captured_stderr() as err:
1767+
sys.__excepthook__(*sys.exc_info())
1768+
self.assertNotIn("you mean", err.getvalue())
1769+
self.assertNotIn("vvv", err.getvalue())
1770+
self.assertNotIn("mom", err.getvalue())
1771+
self.assertNotIn("'id'", err.getvalue())
1772+
self.assertNotIn("'w'", err.getvalue())
1773+
self.assertNotIn("'pytho'", err.getvalue())
1774+
1775+
17191776
def test_getattr_suggestions_do_not_trigger_for_big_dicts(self):
17201777
class A:
17211778
blech = None

0 commit comments

Comments
 (0)