(self)
| 894 | # TODO: RUSTPYTHON; re.search(r"\B", "") now returns a match in CPython 3.14 |
| 895 | @unittest.expectedFailure |
| 896 | def test_word_boundaries(self): |
| 897 | # See http://bugs.python.org/issue10713 |
| 898 | self.assertEqual(re.search(r"\b(abc)\b", "abc").group(1), "abc") |
| 899 | self.assertEqual(re.search(r"\b(abc)\b", "abc", re.ASCII).group(1), "abc") |
| 900 | self.assertEqual(re.search(br"\b(abc)\b", b"abc").group(1), b"abc") |
| 901 | self.assertEqual(re.search(br"\b(abc)\b", b"abc", re.LOCALE).group(1), b"abc") |
| 902 | self.assertEqual(re.search(r"\b(ьюя)\b", "ьюя").group(1), "ьюя") |
| 903 | self.assertIsNone(re.search(r"\b(ьюя)\b", "ьюя", re.ASCII)) |
| 904 | # There's a word boundary between a word and a non-word. |
| 905 | self.assertTrue(re.match(r".\b", "a=")) |
| 906 | self.assertTrue(re.match(r".\b", "a=", re.ASCII)) |
| 907 | self.assertTrue(re.match(br".\b", b"a=")) |
| 908 | self.assertTrue(re.match(br".\b", b"a=", re.LOCALE)) |
| 909 | self.assertTrue(re.match(r".\b", "я=")) |
| 910 | self.assertIsNone(re.match(r".\b", "я=", re.ASCII)) |
| 911 | # There's a word boundary between a non-word and a word. |
| 912 | self.assertTrue(re.match(r".\b", "=a")) |
| 913 | self.assertTrue(re.match(r".\b", "=a", re.ASCII)) |
| 914 | self.assertTrue(re.match(br".\b", b"=a")) |
| 915 | self.assertTrue(re.match(br".\b", b"=a", re.LOCALE)) |
| 916 | self.assertTrue(re.match(r".\b", "=я")) |
| 917 | self.assertIsNone(re.match(r".\b", "=я", re.ASCII)) |
| 918 | # There is no word boundary inside a word. |
| 919 | self.assertIsNone(re.match(r".\b", "ab")) |
| 920 | self.assertIsNone(re.match(r".\b", "ab", re.ASCII)) |
| 921 | self.assertIsNone(re.match(br".\b", b"ab")) |
| 922 | self.assertIsNone(re.match(br".\b", b"ab", re.LOCALE)) |
| 923 | self.assertIsNone(re.match(r".\b", "юя")) |
| 924 | self.assertIsNone(re.match(r".\b", "юя", re.ASCII)) |
| 925 | # There is no word boundary between a non-word characters. |
| 926 | self.assertIsNone(re.match(r".\b", "=-")) |
| 927 | self.assertIsNone(re.match(r".\b", "=-", re.ASCII)) |
| 928 | self.assertIsNone(re.match(br".\b", b"=-")) |
| 929 | self.assertIsNone(re.match(br".\b", b"=-", re.LOCALE)) |
| 930 | # There is no non-boundary match between a word and a non-word. |
| 931 | self.assertIsNone(re.match(r".\B", "a=")) |
| 932 | self.assertIsNone(re.match(r".\B", "a=", re.ASCII)) |
| 933 | self.assertIsNone(re.match(br".\B", b"a=")) |
| 934 | self.assertIsNone(re.match(br".\B", b"a=", re.LOCALE)) |
| 935 | self.assertIsNone(re.match(r".\B", "я=")) |
| 936 | self.assertTrue(re.match(r".\B", "я=", re.ASCII)) |
| 937 | # There is no non-boundary match between a non-word and a word. |
| 938 | self.assertIsNone(re.match(r".\B", "=a")) |
| 939 | self.assertIsNone(re.match(r".\B", "=a", re.ASCII)) |
| 940 | self.assertIsNone(re.match(br".\B", b"=a")) |
| 941 | self.assertIsNone(re.match(br".\B", b"=a", re.LOCALE)) |
| 942 | self.assertIsNone(re.match(r".\B", "=я")) |
| 943 | self.assertTrue(re.match(r".\B", "=я", re.ASCII)) |
| 944 | # There's a non-boundary match inside a word. |
| 945 | self.assertTrue(re.match(r".\B", "ab")) |
| 946 | self.assertTrue(re.match(r".\B", "ab", re.ASCII)) |
| 947 | self.assertTrue(re.match(br".\B", b"ab")) |
| 948 | self.assertTrue(re.match(br".\B", b"ab", re.LOCALE)) |
| 949 | self.assertTrue(re.match(r".\B", "юя")) |
| 950 | self.assertTrue(re.match(r".\B", "юя", re.ASCII)) |
| 951 | # There's a non-boundary match between a non-word characters. |
| 952 | self.assertTrue(re.match(r".\B", "=-")) |
| 953 | self.assertTrue(re.match(r".\B", "=-", re.ASCII)) |
nothing calls this directly
no test coverage detected