17db96d56Sopenharmony_ciimport keyword 27db96d56Sopenharmony_ciimport unittest 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciclass Test_iskeyword(unittest.TestCase): 67db96d56Sopenharmony_ci def test_true_is_a_keyword(self): 77db96d56Sopenharmony_ci self.assertTrue(keyword.iskeyword('True')) 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci def test_uppercase_true_is_not_a_keyword(self): 107db96d56Sopenharmony_ci self.assertFalse(keyword.iskeyword('TRUE')) 117db96d56Sopenharmony_ci 127db96d56Sopenharmony_ci def test_none_value_is_not_a_keyword(self): 137db96d56Sopenharmony_ci self.assertFalse(keyword.iskeyword(None)) 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci # This is probably an accident of the current implementation, but should be 167db96d56Sopenharmony_ci # preserved for backward compatibility. 177db96d56Sopenharmony_ci def test_changing_the_kwlist_does_not_affect_iskeyword(self): 187db96d56Sopenharmony_ci oldlist = keyword.kwlist 197db96d56Sopenharmony_ci self.addCleanup(setattr, keyword, 'kwlist', oldlist) 207db96d56Sopenharmony_ci keyword.kwlist = ['its', 'all', 'eggs', 'beans', 'and', 'a', 'slice'] 217db96d56Sopenharmony_ci self.assertFalse(keyword.iskeyword('eggs')) 227db96d56Sopenharmony_ci 237db96d56Sopenharmony_ci def test_changing_the_softkwlist_does_not_affect_issoftkeyword(self): 247db96d56Sopenharmony_ci oldlist = keyword.softkwlist 257db96d56Sopenharmony_ci self.addCleanup(setattr, keyword, "softkwlist", oldlist) 267db96d56Sopenharmony_ci keyword.softkwlist = ["foo", "bar", "spam", "egs", "case"] 277db96d56Sopenharmony_ci self.assertFalse(keyword.issoftkeyword("spam")) 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci def test_all_keywords_fail_to_be_used_as_names(self): 307db96d56Sopenharmony_ci for key in keyword.kwlist: 317db96d56Sopenharmony_ci with self.assertRaises(SyntaxError): 327db96d56Sopenharmony_ci exec(f"{key} = 42") 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci def test_all_soft_keywords_can_be_used_as_names(self): 357db96d56Sopenharmony_ci for key in keyword.softkwlist: 367db96d56Sopenharmony_ci exec(f"{key} = 42") 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci def test_async_and_await_are_keywords(self): 397db96d56Sopenharmony_ci self.assertIn("async", keyword.kwlist) 407db96d56Sopenharmony_ci self.assertIn("await", keyword.kwlist) 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ci def test_match_and_case_are_soft_keywords(self): 437db96d56Sopenharmony_ci self.assertIn("match", keyword.softkwlist) 447db96d56Sopenharmony_ci self.assertIn("case", keyword.softkwlist) 457db96d56Sopenharmony_ci self.assertIn("_", keyword.softkwlist) 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci def test_keywords_are_sorted(self): 487db96d56Sopenharmony_ci self.assertListEqual(sorted(keyword.kwlist), keyword.kwlist) 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci def test_softkeywords_are_sorted(self): 517db96d56Sopenharmony_ci self.assertListEqual(sorted(keyword.softkwlist), keyword.softkwlist) 527db96d56Sopenharmony_ci 537db96d56Sopenharmony_ci 547db96d56Sopenharmony_ciif __name__ == "__main__": 557db96d56Sopenharmony_ci unittest.main() 56