def test_named(self): r = find_substr_pos(r'u"\N{space}foo"', 0) self.assertEqual((0, 2, 11), r) r = find_substr_pos(r'u"\N{space}foo"', 1) self.assertEqual((0, 11, 12), r) r = find_substr_pos(r'"\N{space}foo"', 1) self.assertEqual((0, 2, 3), r)
def test_find_pos_escapes(self): r = find_substr_pos(r'u"a\u1234b"', 1) self.assertEqual((0, 3, 9), r)
def test_find_pos3(self): r = find_substr_pos('u"abc"', 2) self.assertEqual((0, 4, 5), r)
def test_find_pos2(self): r = find_substr_pos('u"abc"', 1) self.assertEqual((0, 3, 4), r)
def test_find_pos1(self): r = find_substr_pos('u"abc"', 0) self.assertEqual((0, 2, 3), r)
def test_find_pos_raw_backslash(self): r = find_substr_pos(r'r"\\"', 1) self.assertEqual((0, 3, 4), r)
def test_find_pos_newline(self): r = find_substr_pos("'\\\na'", 0) self.assertEqual((0, 3, 4), r)
def test_tripled(self): r = find_substr_pos(r'"""a\x00"""', 1) self.assertEqual((0, 4, 8), r)
def test_unicode_difference(self): r = find_substr_pos(r'u"\u1234foo"', 1) self.assertEqual((0, 8, 9), r) r = find_substr_pos(r'"\u1234foo"', 1) self.assertEqual((0, 2, 3), r)
def test_trailing_newline(self): r = find_substr_pos(r'"a\n"', 1) self.assertEqual((0, 2, 4), r)
def test_find_pos_end(self): r = find_substr_pos('"a"', 0) self.assertEqual((0, 1, 2), r)
def test_find_pos_octal(self): s = r'"\000b"' r = find_substr_pos(s, 0) print(s[r[0]:r[1]]) self.assertEqual((0, 1, 5), r)