Lines Matching refs:self

14     def norm(self, *parts):
15 return os.path.normpath(os.path.join(self.tempdir, *parts))
17 def joins(self, *tuples):
18 return [os.path.join(self.tempdir, *parts) for parts in tuples]
20 def mktemp(self, *parts):
21 filename = self.norm(*parts)
27 def setUp(self):
28 self.tempdir = TESTFN + "_dir"
29 self.mktemp('a', 'D')
30 self.mktemp('aab', 'F')
31 self.mktemp('.aa', 'G')
32 self.mktemp('.bb', 'H')
33 self.mktemp('.bb', '.J')
34 self.mktemp('aaa', 'zzzF')
35 self.mktemp('ZZZ')
36 self.mktemp('EF')
37 self.mktemp('a', 'bcd', 'EF')
38 self.mktemp('a', 'bcd', 'efg', 'ha')
40 os.symlink(self.norm('broken'), self.norm('sym1'))
41 os.symlink('broken', self.norm('sym2'))
42 os.symlink(os.path.join('a', 'bcd'), self.norm('sym3'))
44 self.dir_fd = os.open(self.tempdir, os.O_RDONLY | os.O_DIRECTORY)
46 self.dir_fd = None
48 def tearDown(self):
49 if self.dir_fd is not None:
50 os.close(self.dir_fd)
51 shutil.rmtree(self.tempdir)
53 def glob(self, *parts, **kwargs):
58 p = os.path.join(self.tempdir, pattern)
61 self.assertCountEqual(glob.iglob(p, **kwargs), res)
64 self.assertCountEqual(glob.glob(os.fsencode(p), **kwargs), bres)
65 self.assertCountEqual(glob.iglob(os.fsencode(p), **kwargs), bres)
67 with change_cwd(self.tempdir):
70 self.assertFalse(os.path.isabs(x), x)
75 self.assertCountEqual([os.path.join(self.tempdir, x) for x in res2],
77 self.assertCountEqual(glob.iglob(pattern, **kwargs), res2)
80 self.assertCountEqual(glob.glob(bpattern, **kwargs), bres2)
81 self.assertCountEqual(glob.iglob(bpattern, **kwargs), bres2)
83 self.assertCountEqual(glob.glob(pattern, root_dir=self.tempdir, **kwargs), res2)
84 self.assertCountEqual(glob.iglob(pattern, root_dir=self.tempdir, **kwargs), res2)
85 btempdir = os.fsencode(self.tempdir)
86 self.assertCountEqual(
88 self.assertCountEqual(
91 if self.dir_fd is not None:
92 self.assertCountEqual(
93 glob.glob(pattern, dir_fd=self.dir_fd, **kwargs), res2)
94 self.assertCountEqual(
95 glob.iglob(pattern, dir_fd=self.dir_fd, **kwargs), res2)
96 self.assertCountEqual(
97 glob.glob(bpattern, dir_fd=self.dir_fd, **kwargs), bres2)
98 self.assertCountEqual(
99 glob.iglob(bpattern, dir_fd=self.dir_fd, **kwargs), bres2)
103 def assertSequencesEqual_noorder(self, l1, l2):
106 self.assertEqual(set(l1), set(l2))
107 self.assertEqual(sorted(l1), sorted(l2))
109 def test_glob_literal(self):
110 eq = self.assertSequencesEqual_noorder
111 eq(self.glob('a'), [self.norm('a')])
112 eq(self.glob('a', 'D'), [self.norm('a', 'D')])
113 eq(self.glob('aab'), [self.norm('aab')])
114 eq(self.glob('zymurgy'), [])
117 self.assertEqual({type(r) for r in res}, {str})
119 self.assertEqual({type(r) for r in res}, {str})
122 self.assertEqual({type(r) for r in res}, {bytes})
124 self.assertEqual({type(r) for r in res}, {bytes})
126 def test_glob_empty_pattern(self):
127 self.assertEqual(glob.glob(''), [])
128 self.assertEqual(glob.glob(b''), [])
129 self.assertEqual(glob.glob('', root_dir=self.tempdir), [])
130 self.assertEqual(glob.glob(b'', root_dir=os.fsencode(self.tempdir)), [])
131 self.assertEqual(glob.glob('', dir_fd=self.dir_fd), [])
132 self.assertEqual(glob.glob(b'', dir_fd=self.dir_fd), [])
134 def test_glob_one_directory(self):
135 eq = self.assertSequencesEqual_noorder
136 eq(self.glob('a*'), map(self.norm, ['a', 'aab', 'aaa']))
137 eq(self.glob('*a'), map(self.norm, ['a', 'aaa']))
138 eq(self.glob('.*'), map(self.norm, ['.aa', '.bb']))
139 eq(self.glob('?aa'), map(self.norm, ['aaa']))
140 eq(self.glob('aa?'), map(self.norm, ['aaa', 'aab']))
141 eq(self.glob('aa[ab]'), map(self.norm, ['aaa', 'aab']))
142 eq(self.glob('*q'), [])
144 def test_glob_nested_directory(self):
145 eq = self.assertSequencesEqual_noorder
148 eq(self.glob('a', 'bcd', 'E*'), [self.norm('a', 'bcd', 'EF')])
151 eq(self.glob('a', 'bcd', 'E*'), [self.norm('a', 'bcd', 'EF'),
152 self.norm('a', 'bcd', 'efg')])
153 eq(self.glob('a', 'bcd', '*g'), [self.norm('a', 'bcd', 'efg')])
155 def test_glob_directory_names(self):
156 eq = self.assertSequencesEqual_noorder
157 eq(self.glob('*', 'D'), [self.norm('a', 'D')])
158 eq(self.glob('*', '*a'), [])
159 eq(self.glob('a', '*', '*', '*a'),
160 [self.norm('a', 'bcd', 'efg', 'ha')])
161 eq(self.glob('?a?', '*F'), [self.norm('aaa', 'zzzF'),
162 self.norm('aab', 'F')])
164 def test_glob_directory_with_trailing_slash(self):
166 res = glob.glob(self.norm('Z*Z') + os.sep)
167 self.assertEqual(res, [])
168 res = glob.glob(self.norm('ZZZ') + os.sep)
169 self.assertEqual(res, [])
172 res = glob.glob(self.norm('aa*') + os.sep)
173 self.assertEqual(len(res), 2)
175 self.assertIn(set(res), [
176 {self.norm('aaa'), self.norm('aab')},
177 {self.norm('aaa') + os.sep, self.norm('aab') + os.sep},
180 def test_glob_bytes_directory_with_trailing_slash(self):
183 res = glob.glob(os.fsencode(self.norm('Z*Z') + os.sep))
184 self.assertEqual(res, [])
185 res = glob.glob(os.fsencode(self.norm('ZZZ') + os.sep))
186 self.assertEqual(res, [])
187 res = glob.glob(os.fsencode(self.norm('aa*') + os.sep))
188 self.assertEqual(len(res), 2)
190 self.assertIn(set(res), [
191 {os.fsencode(self.norm('aaa')),
192 os.fsencode(self.norm('aab'))},
193 {os.fsencode(self.norm('aaa') + os.sep),
194 os.fsencode(self.norm('aab') + os.sep)},
198 def test_glob_symlinks(self):
199 eq = self.assertSequencesEqual_noorder
200 eq(self.glob('sym3'), [self.norm('sym3')])
201 eq(self.glob('sym3', '*'), [self.norm('sym3', 'EF'),
202 self.norm('sym3', 'efg')])
203 self.assertIn(self.glob('sym3' + os.sep),
204 [[self.norm('sym3')], [self.norm('sym3') + os.sep]])
205 eq(self.glob('*', '*F'),
206 [self.norm('aaa', 'zzzF'),
207 self.norm('aab', 'F'), self.norm('sym3', 'EF')])
210 def test_glob_broken_symlinks(self):
211 eq = self.assertSequencesEqual_noorder
212 eq(self.glob('sym*'), [self.norm('sym1'), self.norm('sym2'),
213 self.norm('sym3')])
214 eq(self.glob('sym1'), [self.norm('sym1')])
215 eq(self.glob('sym2'), [self.norm('sym2')])
218 def test_glob_magic_in_drive(self):
219 eq = self.assertSequencesEqual_noorder
229 def check_escape(self, arg, expected):
230 self.assertEqual(glob.escape(arg), expected)
231 self.assertEqual(glob.escape(os.fsencode(arg)), os.fsencode(expected))
233 def test_escape(self):
234 check = self.check_escape
243 def test_escape_windows(self):
244 check = self.check_escape
252 def rglob(self, *parts, **kwargs):
253 return self.glob(*parts, recursive=True, **kwargs)
255 def hglob(self, *parts, **kwargs):
256 return self.glob(*parts, include_hidden=True, **kwargs)
258 def test_hidden_glob(self):
259 eq = self.assertSequencesEqual_noorder
261 eq(self.hglob('?aa'), self.joins(*l))
262 eq(self.hglob('*aa'), self.joins(*l))
264 eq(self.hglob('**', 'G'), self.joins(*l2))
266 def test_recursive_glob(self):
267 eq = self.assertSequencesEqual_noorder
284 eq(self.rglob('**'), self.joins(('',), *full))
285 eq(self.rglob(os.curdir, '**'),
286 self.joins((os.curdir, ''), *((os.curdir,) + i for i in full)))
291 eq(self.rglob('**', ''), self.joins(('',), *dirs))
293 eq(self.rglob('a', '**'), self.joins(
296 eq(self.rglob('a**'), self.joins(('a',), ('aaa',), ('aab',)))
300 eq(self.rglob('**', 'EF'), self.joins(*expect))
304 eq(self.rglob('**', '*F'), self.joins(*expect))
305 eq(self.rglob('**', '*F', ''), [])
306 eq(self.rglob('**', 'bcd', '*'), self.joins(
308 eq(self.rglob('a', '**', 'bcd'), self.joins(('a', 'bcd')))
310 with change_cwd(self.tempdir):
335 def test_glob_many_open_files(self):
337 base = os.path.join(self.tempdir, 'deep')
343 self.assertEqual(next(it), p)
350 self.assertEqual(next(it), p)
356 def test_selflink(self):
359 self.addCleanup(shutil.rmtree, tempdir)
366 self.assertEqual(len(results), len(set(results)))
371 self.assertIn(path, results)
376 self.assertIn(path, results)
381 self.assertEqual(len(results), len(set(results)))
386 self.assertIn(path, results)
391 self.assertEqual(len(results), len(set(results)))
396 self.assertIn(path, results)