19
19
from cStringIO import StringIO
21
21
from bzrlib import config, errors, ignores
22
from bzrlib.tests import TestCase, TestCaseInTempDir, TestCaseWithTransport
22
from bzrlib.tests import TestCase, TestCaseInTempDir
25
25
class TestParseIgnoreFile(TestCase):
104
104
# Create an empty file
105
105
ignores._set_user_ignores([])
107
in_patterns = ['foo/', 'bar/', 'baz\\']
107
in_patterns = ['foo/', 'bar/']
108
108
added = ignores.add_unique_user_ignores(in_patterns)
109
out_patterns = [ x.rstrip('/\\') for x in in_patterns ]
109
out_patterns = [ x.rstrip('/') for x in in_patterns ]
110
110
self.assertEqual(out_patterns, added)
111
111
self.assertEqual(set(out_patterns), ignores.get_user_ignores())
113
113
def test_add_unique(self):
114
114
"""Test that adding will not duplicate ignores"""
115
ignores._set_user_ignores(
116
['foo', './bar', u'b\xe5z', 'dir1/', 'dir3\\'])
115
ignores._set_user_ignores(['foo', './bar', u'b\xe5z', 'dir1/'])
118
117
added = ignores.add_unique_user_ignores(
119
['xxx', './bar', 'xxx', 'dir1/', 'dir2/', 'dir3\\'])
118
['xxx', './bar', 'xxx', 'dir1/', 'dir2/'])
120
119
self.assertEqual(['xxx', 'dir2'], added)
121
120
self.assertEqual(set(['foo', './bar', u'b\xe5z',
122
'xxx', 'dir1', 'dir2', 'dir3']),
121
'xxx', 'dir1', 'dir2']),
123
122
ignores.get_user_ignores())
151
150
ignores.add_runtime_ignores(['bar'])
152
151
self.assertEqual(set(['foo', 'bar']), ignores.get_runtime_ignores())
155
class TestTreeIgnores(TestCaseWithTransport):
157
def test_new_file(self):
158
tree = self.make_branch_and_tree(".")
159
ignores.tree_ignores_add_patterns(tree, ["myentry"])
160
self.assertTrue(tree.has_filename(".bzrignore"))
161
self.assertEquals("myentry\n",
162
open(".bzrignore", 'r').read())
164
def test_add_to_existing(self):
165
tree = self.make_branch_and_tree(".")
166
self.build_tree_contents([('.bzrignore', "myentry1\n")])
167
tree.add([".bzrignore"])
168
ignores.tree_ignores_add_patterns(tree, ["myentry2", "foo"])
169
self.assertEquals("myentry1\nmyentry2\nfoo\n",
170
open(".bzrignore", 'r').read())
172
def test_adds_ending_newline(self):
173
tree = self.make_branch_and_tree(".")
174
self.build_tree_contents([('.bzrignore', "myentry1")])
175
tree.add([".bzrignore"])
176
ignores.tree_ignores_add_patterns(tree, ["myentry2"])
177
self.assertEquals("myentry1\nmyentry2\n",
178
open(".bzrignore", 'r').read())