@@ -1477,6 +1477,16 @@ def func():
1477
1477
sys .__excepthook__ (* sys .exc_info ())
1478
1478
self .assertIn ("global_for_suggestions?" , err .getvalue ())
1479
1479
1480
+ def test_name_error_suggestions_from_builtins (self ):
1481
+ def func ():
1482
+ print (AttributeErrop )
1483
+ try :
1484
+ func ()
1485
+ except NameError as exc :
1486
+ with support .captured_stderr () as err :
1487
+ sys .__excepthook__ (* sys .exc_info ())
1488
+ self .assertIn ("AttributeError?" , err .getvalue ())
1489
+
1480
1490
def test_name_error_suggestions_do_not_trigger_for_long_names (self ):
1481
1491
def f ():
1482
1492
somethingverywronghehehehehehe = None
@@ -1490,7 +1500,7 @@ def f():
1490
1500
1491
1501
self .assertNotIn ("somethingverywronghehe" , err .getvalue ())
1492
1502
1493
- def test_name_error_suggestions_do_not_trigger_for_big_dicts (self ):
1503
+ def test_name_error_suggestions_do_not_trigger_for_too_many_locals (self ):
1494
1504
def f ():
1495
1505
# Mutating locals() is unreliable, so we need to do it by hand
1496
1506
a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = a10 = a11 = a12 = a13 = \
@@ -1501,7 +1511,13 @@ def f():
1501
1511
a62 = a63 = a64 = a65 = a66 = a67 = a68 = a69 = a70 = a71 = a72 = a73 = \
1502
1512
a74 = a75 = a76 = a77 = a78 = a79 = a80 = a81 = a82 = a83 = a84 = a85 = \
1503
1513
a86 = a87 = a88 = a89 = a90 = a91 = a92 = a93 = a94 = a95 = a96 = a97 = \
1504
- a98 = a99 = a100 = a101 = a102 = a103 = None
1514
+ a98 = a99 = a100 = a101 = a102 = a103 = a104 = a105 = a106 = a107 = \
1515
+ a108 = a109 = a110 = a111 = a112 = a113 = a114 = a115 = a116 = a117 = \
1516
+ a118 = a119 = a120 = a121 = a122 = a123 = a124 = a125 = a126 = \
1517
+ a127 = a128 = a129 = a130 = a131 = a132 = a133 = a134 = a135 = a136 = \
1518
+ a137 = a138 = a139 = a140 = a141 = a142 = a143 = a144 = a145 = \
1519
+ a146 = a147 = a148 = a149 = a150 = a151 = a152 = a153 = a154 = a155 = \
1520
+ a156 = a157 = a158 = a159 = a160 = a161 = None
1505
1521
print (a0 )
1506
1522
1507
1523
try :
@@ -1510,7 +1526,7 @@ def f():
1510
1526
with support .captured_stderr () as err :
1511
1527
sys .__excepthook__ (* sys .exc_info ())
1512
1528
1513
- self .assertNotIn ("a10 " , err .getvalue ())
1529
+ self .assertNotIn ("a1 " , err .getvalue ())
1514
1530
1515
1531
def test_name_error_with_custom_exceptions (self ):
1516
1532
def f ():
@@ -1643,7 +1659,7 @@ class A:
1643
1659
blech = None
1644
1660
# A class with a very big __dict__ will not be consider
1645
1661
# for suggestions.
1646
- for index in range (101 ):
1662
+ for index in range (160 ):
1647
1663
setattr (A , f"index_{ index } " , None )
1648
1664
1649
1665
try :
0 commit comments