1
# Copyright (C) 2006-2010 Canonical Ltd
1
# Copyright (C) 2006 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
17
"""Tests for handling of ignore files"""
50
46
def test_parse_empty(self):
51
47
ignored = ignores.parse_ignore_file(StringIO(''))
52
48
self.assertEqual(set([]), ignored)
54
def test_parse_non_utf8(self):
55
"""Lines with non utf 8 characters should be discarded."""
56
ignored = ignores.parse_ignore_file(StringIO(
61
self.assertEqual(set([
67
51
class TestUserIgnores(TestCaseInTempDir):
69
53
def test_create_if_missing(self):
70
54
# $HOME should be set to '.'
71
55
ignore_path = config.user_ignore_config_filename()
134
118
added = ignores.add_unique_user_ignores(
135
119
['xxx', './bar', 'xxx', 'dir1/', 'dir2/', 'dir3\\'])
136
120
self.assertEqual(['xxx', 'dir2'], added)
137
self.assertEqual(set(['foo', './bar', u'b\xe5z',
121
self.assertEqual(set(['foo', './bar', u'b\xe5z',
138
122
'xxx', 'dir1', 'dir2', 'dir3']),
139
123
ignores.get_user_ignores())
145
129
TestCase.setUp(self)
131
orig = ignores._runtime_ignores
133
ignores._runtime_ignores = orig
134
self.addCleanup(restore)
147
135
# For the purposes of these tests, we must have no
148
136
# runtime ignores
149
self.overrideAttr(ignores, '_runtime_ignores', set())
137
ignores._runtime_ignores = set()
151
139
def test_add(self):
152
140
"""Test that we can add an entry to the list."""
170
158
tree = self.make_branch_and_tree(".")
171
159
ignores.tree_ignores_add_patterns(tree, ["myentry"])
172
160
self.assertTrue(tree.has_filename(".bzrignore"))
173
self.assertEquals("myentry\n",
161
self.assertEquals("myentry\n",
174
162
open(".bzrignore", 'r').read())
176
164
def test_add_to_existing(self):
177
165
tree = self.make_branch_and_tree(".")
178
self.build_tree_contents([('.bzrignore', "myentry1\n")])
166
self.build_tree_contents([('.bzrignore', "myentry1\n")])
179
167
tree.add([".bzrignore"])
180
168
ignores.tree_ignores_add_patterns(tree, ["myentry2", "foo"])
181
self.assertEquals("myentry1\nmyentry2\nfoo\n",
169
self.assertEquals("myentry1\nmyentry2\nfoo\n",
182
170
open(".bzrignore", 'r').read())
184
172
def test_adds_ending_newline(self):
185
173
tree = self.make_branch_and_tree(".")
186
self.build_tree_contents([('.bzrignore', "myentry1")])
174
self.build_tree_contents([('.bzrignore', "myentry1")])
187
175
tree.add([".bzrignore"])
188
176
ignores.tree_ignores_add_patterns(tree, ["myentry2"])
189
self.assertEquals("myentry1\nmyentry2\n",
177
self.assertEquals("myentry1\nmyentry2\n",
190
178
open(".bzrignore", 'r').read())