annotate tests/test_match.py @ 296:ca293f708cb4

Begin some preparation for handling glob-style patterns in treeview. Needed to implement inclusions and exclusions.
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 02 Mar 2025 22:54:40 +0100
parents
children 141a3aa0b403
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 from cutils.util.glob import CharIter
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
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 class TestCharIter(unittest.TestCase):
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 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
19 it = CharIter("1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20 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
21
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 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
23 it = CharIter("1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 chars = []
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25 for c in it:
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 chars.append(c)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 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
28
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29 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
30 it = CharIter(u"1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 chars = []
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32 for c in it:
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 chars.append(c)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 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
35
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 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
37 it = CharIter(b"1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 chars = []
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 for c in it:
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 chars.append(c)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 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
42
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 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
44 it = CharIter("1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 for _ in it:
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 pass
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 self.assertIsNone(it.peek())
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 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
50 it = CharIter("1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 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
52 chars = "".join(it)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 self.assertEqual("1234", chars)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 self.assertIsNone(it.peek())
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56 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
57 it = CharIter("1234")
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 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
59 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
60 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
61 chars = "".join(it)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 self.assertEqual("234", chars)
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 self.assertIsNone(it.peek())
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66 if __name__ == "__main__":
ca293f708cb4 Begin some preparation for handling glob-style patterns in treeview.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 sys.exit(unittest.main())