Mercurial > hgrepos > Python > apps > py-cutils
annotate tests/test_match.py @ 317:fc1b940bd4a6
treesum: when accepting treesum digest files put a line with its filename into the output
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 10 Mar 2025 10:25:57 +0100 |
| parents | 16a5c337fcb9 |
| children | 285ee01dbb39 |
| rev | line source |
|---|---|
|
296
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
2 r"""Unit tests for :mod:`cutils.util.glob` |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
3 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
4 """ |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
5 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
6 from __future__ import absolute_import, print_function |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
7 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
8 import _test_setup # noqa: F401 imported but unused |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
9 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
10 import sys |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
11 import unittest |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
12 |
|
297
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
13 from cutils.util import PY2 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
14 from cutils.util.glob import CharIter, glob_to_regexp |
|
296
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
15 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
16 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
17 class TestCharIter(unittest.TestCase): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
18 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
19 def test_transitive_iter(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
20 it = CharIter("1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
21 self.assertIs(iter(it), it) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
22 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
23 def test_native_str(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
24 it = CharIter("1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 chars = [] |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 for c in it: |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 chars.append(c) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
28 self.assertEqual("1234", "".join(chars)) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
29 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
30 def test_unicode_str(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
31 it = CharIter(u"1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
32 chars = [] |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
33 for c in it: |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
34 chars.append(c) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
35 self.assertEqual(u"1234", "".join(chars)) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
36 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
37 def test_byte_str(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
38 it = CharIter(b"1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
39 chars = [] |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
40 for c in it: |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
41 chars.append(c) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
42 self.assertEqual(b"1234", b"".join(chars)) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
43 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
44 def test_peek_exhausted(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
45 it = CharIter("1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
46 for _ in it: |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
47 pass |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
48 self.assertIsNone(it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
49 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
50 def test_peek_first(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
51 it = CharIter("1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
52 self.assertEqual("1", it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
53 chars = "".join(it) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
54 self.assertEqual("1234", chars) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
55 self.assertIsNone(it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
56 |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
57 def test_peek_from_second(self): |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
58 it = CharIter("1234") |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
59 self.assertEqual("1", it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
60 self.assertEqual("1", next(it)) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
61 self.assertEqual("2", it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
62 chars = "".join(it) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
63 self.assertEqual("234", chars) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
64 self.assertIsNone(it.peek()) |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
65 |
|
298
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
66 def test_peek_from_second_with_bytes(self): |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
67 it = CharIter(b"1234") |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
68 self.assertEqual(b"1", it.peek()) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
69 self.assertEqual(b"1", next(it)) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
70 self.assertEqual(b"2", it.peek()) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
71 self.assertEqual(b"2", it.peek()) # a second peek is idempotent |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
72 chars = b"".join(it) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
73 self.assertEqual(b"234", chars) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
74 self.assertIsNone(it.peek()) |
|
16a5c337fcb9
FIX: peeking for byte strings on Python3 needs to convert from int to bytes
Franz Glasner <fzglas.hg@dom66.de>
parents:
297
diff
changeset
|
75 |
|
296
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
76 |
|
297
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
77 class TestGlobToRegexp(unittest.TestCase): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
78 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
79 def test_empty(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
80 self.assertEqual("", glob_to_regexp("")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
81 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
82 def test_question_mark(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
83 self.assertEqual(".", glob_to_regexp("?")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
84 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
85 def test_single_star(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
86 self.assertEqual("[^/]*", glob_to_regexp("*")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
87 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
88 def test_double_star(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
89 self.assertEqual(".*", glob_to_regexp("**")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
90 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
91 def test_double_star_slash(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
92 self.assertEqual("(?:.*/)?", glob_to_regexp("**/")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
93 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
94 def test_double_star_in_between(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
95 if PY2: |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
96 # Python 2 escapes all alnum characters in re.escape() |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
97 self.assertEqual("part1\\/(?:.*/)?part2", |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
98 glob_to_regexp("part1/**/part2")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
99 else: |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
100 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
101 self.assertEqual("part1/(?:.*/)?part2", |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
102 glob_to_regexp("part1/**/part2")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
103 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
104 def test_double_start_in_between2(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
105 if PY2: |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
106 # Python 2 escapes all alnum characters in re.escape() |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
107 self.assertEqual("part1\\/.*\\.py", glob_to_regexp("part1/**.py")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
108 else: |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
109 self.assertEqual("part1/.*\\.py", glob_to_regexp("part1/**.py")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
110 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
111 def test_bracket_simple(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
112 self.assertEqual("[abc]", glob_to_regexp("[abc]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
113 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
114 def test_bracket_simple_range(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
115 self.assertEqual("[a-c]", glob_to_regexp("[a-c]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
116 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
117 def test_bracket_with_special_chars(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
118 self.assertEqual("[x*?!^]", glob_to_regexp("[x*?!^]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
119 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
120 def test_bracket_simple_range_with_escape(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
121 self.assertEqual("[\\\\-c]", glob_to_regexp("[\\-c]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
122 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
123 def test_bracket_not_closed(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
124 self.assertEqual("\\[a", glob_to_regexp("[a")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
125 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
126 def test_bracket_not_closed_escapes(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
127 self.assertEqual("\\[a\\*\\?", glob_to_regexp("[a*?")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
128 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
129 def test_bracket_with_dash_as_first_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
130 self.assertEqual("[\\-a]", glob_to_regexp("[-a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
131 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
132 def test_bracket_with_dash_as_last_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
133 self.assertEqual("[a\\-]", glob_to_regexp("[a-]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
134 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
135 def test_bracket_with_closing_bracket(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
136 self.assertEqual("[\\]a]", glob_to_regexp("[]a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
137 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
138 def test_bracket_with_caret_as_first_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
139 self.assertEqual("[\\^a]", glob_to_regexp("[^a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
140 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
141 def test_bracket_negating_with_dash_as_first_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
142 self.assertEqual("[^\\-a]", glob_to_regexp("[!-a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
143 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
144 def test_bracket_negating_with_dash_as_last_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
145 self.assertEqual("[^a\\-]", glob_to_regexp("[!a-]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
146 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
147 def test_bracket_negating_with_closing_bracket(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
148 self.assertEqual("[^\\]a]", glob_to_regexp("[!]a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
149 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
150 def test_bracket_negating_with_caret_as_first_character(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
151 self.assertEqual("[^^a]", glob_to_regexp("[!^a]")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
152 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
153 def test_simple_escapes(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
154 for c in "\\()[]{}*.?": |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
155 self.assertEqual("\\"+c, glob_to_regexp("\\"+c)) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
156 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
157 def test_simple_escapes_last_backslash(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
158 self.assertEqual("\\\\", glob_to_regexp("\\")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
159 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
160 def test_auto_escapes(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
161 for c in "*.?": |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
162 self.assertEqual("\\"+c, glob_to_regexp("\\"+c)) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
163 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
164 def test_group_simple(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
165 self.assertEqual("(?:abc|def)", glob_to_regexp("{abc,def}")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
166 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
167 def test_group_complex_nested(self): |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
168 self.assertEqual("(?:abc|(?:[ABQ-Z]|[^A][^/]*))", |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
169 glob_to_regexp("{abc,{[ABQ-Z],[!A]*}}")) |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
170 |
|
141a3aa0b403
First version of converting a glob-style pattern to a regex
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
171 |
|
296
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
172 if __name__ == "__main__": |
|
ca293f708cb4
Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
173 sys.exit(unittest.main()) |
