63
68
self.assertEqual('dos', tree.is_ignored('dos'))
64
69
self.assertEqual(None, tree.is_ignored('dosfoo'))
71
self.assertEqual('*bar', tree.is_ignored('foobar'))
72
self.assertEqual('*bar', tree.is_ignored(r'foo\nbar'))
73
self.assertEqual('*bar', tree.is_ignored('bar'))
74
self.assertEqual('*bar', tree.is_ignored('.bar'))
76
self.assertEqual('?foo', tree.is_ignored('afoo'))
77
self.assertEqual('?foo', tree.is_ignored('.foo'))
79
self.assertEqual('*.~*', tree.is_ignored('blah.py.~1~'))
81
self.assertEqual('dir1/*f1', tree.is_ignored('dir1/foof1'))
82
self.assertEqual('dir1/*f1', tree.is_ignored('dir1/f1'))
83
self.assertEqual('dir1/*f1', tree.is_ignored('dir1/.f1'))
85
self.assertEqual('dir1/?f2', tree.is_ignored('dir1/ff2'))
86
self.assertEqual('dir1/?f2', tree.is_ignored('dir1/.f2'))
66
88
# Blank lines and comments should be ignored
67
89
self.assertEqual(None, tree.is_ignored(''))
68
90
self.assertEqual(None, tree.is_ignored('test/'))
142
164
self.assertEqual('*.py[co]', tree.is_ignored('foo.pyc'))
143
165
self.assertEqual('./.shelf', tree.is_ignored('.shelf'))
144
166
self.assertEqual('./rootdir', tree.is_ignored('rootdir'))
167
self.assertEqual('*.swp', tree.is_ignored('foo.py.swp'))
145
168
self.assertEqual('*.swp', tree.is_ignored('.foo.py.swp'))
146
169
self.assertEqual(None, tree.is_ignored('.foo.py.swo'))
148
def test_DEFAULT_IGNORE(self):
149
tree = self.make_branch_and_tree('.')
150
# It used to be possible for plugins to modify DEFAULT_IGNORE
151
# directly, and get their working files to be ignored.
152
# It is still possible to do so, but this is deprecated.
154
# No configured ignores
155
self.build_tree_contents([('.bzrignore', '')])
156
ignores._set_user_ignores([])
158
self.assertEqual(None, tree.is_ignored('foo.pyc'))
160
# Must reset the list so that it reads a new one
161
tree._ignoreset = None
163
# use list.append() to get around the deprecation warnings
164
list.append(bzrlib.DEFAULT_IGNORE, '*.py[co]')
166
self.assertEqual('*.py[co]', tree.is_ignored('foo.pyc'))
168
list.remove(bzrlib.DEFAULT_IGNORE, '*.py[co]')
170
171
def test_runtime_ignores(self):
171
172
tree = self.make_branch_and_tree('.')
172
173
self.build_tree_contents([('.bzrignore', '')])
177
178
ignores._runtime_ignores = set()
178
179
self.assertEqual(None, tree.is_ignored('foobar.py'))
180
tree._ignoreset = None
181
tree._flush_ignore_list_cache()
181
182
ignores.add_runtime_ignores(['./foobar.py'])
182
183
self.assertEqual(set(['./foobar.py']), ignores.get_runtime_ignores())
183
184
self.assertEqual('./foobar.py', tree.is_ignored('foobar.py'))
185
186
ignores._runtime_ignores = orig_runtime
188
def test_ignore_caching(self):
189
tree = self.make_branch_and_tree('.')
190
self.build_tree(['ignoreme'])
192
self.assertEqual(None, tree.is_ignored('ignoreme'))
194
# Bug #129694 specifically references WorkingTree.unknowns()
197
self.build_tree_contents([('.bzrignore', 'ignoreme')])
198
self.assertEqual('ignoreme', tree.is_ignored('ignoreme'))