~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_ignores.py

  • Committer: Vincent Ladeuil
  • Date: 2008-09-11 19:36:38 UTC
  • mfrom: (3703 +trunk)
  • mto: (3705.1.1 trunk2)
  • mto: This revision was merged to the branch mainline in revision 3708.
  • Revision ID: v.ladeuil+lp@free.fr-20080911193638-wtjyc1kcmacc6t1f
merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2006 Canonical Ltd
2
2
#
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
12
12
#
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
16
16
 
17
17
"""Tests for handling of ignore files"""
18
18
 
34
34
                '\n' # empty line
35
35
                '#comment\n'
36
36
                ' xx \n' # whitespace
37
 
                '!RE:^\.z.*\n'
38
 
                '!!./.zcompdump\n'
39
37
                ))
40
38
        self.assertEqual(set(['./rootdir',
41
39
                          'randomfile*',
43
41
                          u'unicode\xb5',
44
42
                          'dos',
45
43
                          ' xx ',
46
 
                          '!RE:^\.z.*',
47
 
                          '!!./.zcompdump',
48
44
                         ]), ignored)
49
45
 
50
46
    def test_parse_empty(self):
51
47
        ignored = ignores.parse_ignore_file(StringIO(''))
52
48
        self.assertEqual(set([]), ignored)
53
 
        
54
 
    def test_parse_non_utf8(self):
55
 
        """Lines with non utf 8 characters should be discarded."""
56
 
        ignored = ignores.parse_ignore_file(StringIO(
57
 
                'utf8filename_a\n'
58
 
                'invalid utf8\x80\n'
59
 
                'utf8filename_b\n'
60
 
                ))
61
 
        self.assertEqual(set([
62
 
                        'utf8filename_a',
63
 
                        'utf8filename_b',
64
 
                       ]), ignored)
65
49
 
66
50
 
67
51
class TestUserIgnores(TestCaseInTempDir):
68
 
 
 
52
    
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())
140
124
 
144
128
    def setUp(self):
145
129
        TestCase.setUp(self)
146
130
 
 
131
        orig = ignores._runtime_ignores
 
132
        def restore():
 
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()
150
138
 
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())
175
163
 
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())
183
171
 
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())
191
179