Skip to content

Commit 2e2ab67

Browse files
miss-islingtonEclips4terryjreedy
authored
gh-102158: Add tests for softkwlist (GH-102159)
--------- (cherry picked from commit 9f3ecd1) Co-authored-by: Eclips4 <[email protected]> Co-authored-by: Terry Jan Reedy <[email protected]>
1 parent 9a0116d commit 2e2ab67

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Lib/test/test_keyword.py

+18
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,36 @@ def test_changing_the_kwlist_does_not_affect_iskeyword(self):
2020
keyword.kwlist = ['its', 'all', 'eggs', 'beans', 'and', 'a', 'slice']
2121
self.assertFalse(keyword.iskeyword('eggs'))
2222

23+
def test_changing_the_softkwlist_does_not_affect_issoftkeyword(self):
24+
oldlist = keyword.softkwlist
25+
self.addCleanup(setattr, keyword, "softkwlist", oldlist)
26+
keyword.softkwlist = ["foo", "bar", "spam", "egs", "case"]
27+
self.assertFalse(keyword.issoftkeyword("spam"))
28+
2329
def test_all_keywords_fail_to_be_used_as_names(self):
2430
for key in keyword.kwlist:
2531
with self.assertRaises(SyntaxError):
2632
exec(f"{key} = 42")
2733

34+
def test_all_soft_keywords_can_be_used_as_names(self):
35+
for key in keyword.softkwlist:
36+
exec(f"{key} = 42")
37+
2838
def test_async_and_await_are_keywords(self):
2939
self.assertIn("async", keyword.kwlist)
3040
self.assertIn("await", keyword.kwlist)
3141

42+
def test_match_and_case_are_soft_keywords(self):
43+
self.assertIn("match", keyword.softkwlist)
44+
self.assertIn("case", keyword.softkwlist)
45+
self.assertIn("_", keyword.softkwlist)
46+
3247
def test_keywords_are_sorted(self):
3348
self.assertListEqual(sorted(keyword.kwlist), keyword.kwlist)
3449

50+
def test_softkeywords_are_sorted(self):
51+
self.assertListEqual(sorted(keyword.softkwlist), keyword.softkwlist)
52+
3553

3654
if __name__ == "__main__":
3755
unittest.main()

0 commit comments

Comments
 (0)