~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_ignores.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-05-05 08:14:10 UTC
  • mfrom: (5195.2.9 572092-ignore-dupes)
  • Revision ID: pqm@pqm.ubuntu.com-20100505081410-kuy3vpsv2hmxk1kq
(doxxx) 'ignore' command avoids putting duplicate entry into
        .bzrignore

Show diffs side-by-side

added added

removed removed

Lines of Context:
165
165
 
166
166
 
167
167
class TestTreeIgnores(TestCaseWithTransport):
 
168
    
 
169
    def assertPatternsEquals(self, patterns):
 
170
        contents = open(".bzrignore", 'rU').read().strip().split('\n')
 
171
        self.assertEquals(sorted(patterns), sorted(contents))
168
172
 
169
173
    def test_new_file(self):
170
174
        tree = self.make_branch_and_tree(".")
171
175
        ignores.tree_ignores_add_patterns(tree, ["myentry"])
172
176
        self.assertTrue(tree.has_filename(".bzrignore"))
173
 
        self.assertEquals("myentry\n",
174
 
                          open(".bzrignore", 'r').read())
 
177
        self.assertPatternsEquals(["myentry"])
175
178
 
176
179
    def test_add_to_existing(self):
177
180
        tree = self.make_branch_and_tree(".")
178
181
        self.build_tree_contents([('.bzrignore', "myentry1\n")])
179
182
        tree.add([".bzrignore"])
180
183
        ignores.tree_ignores_add_patterns(tree, ["myentry2", "foo"])
181
 
        self.assertEquals("myentry1\nmyentry2\nfoo\n",
182
 
                          open(".bzrignore", 'r').read())
 
184
        self.assertPatternsEquals(["myentry1", "myentry2", "foo"])
183
185
 
184
186
    def test_adds_ending_newline(self):
185
187
        tree = self.make_branch_and_tree(".")
186
188
        self.build_tree_contents([('.bzrignore', "myentry1")])
187
189
        tree.add([".bzrignore"])
188
190
        ignores.tree_ignores_add_patterns(tree, ["myentry2"])
189
 
        self.assertEquals("myentry1\nmyentry2\n",
190
 
                          open(".bzrignore", 'r').read())
191
 
 
 
191
        self.assertPatternsEquals(["myentry1", "myentry2"])
 
192
        text = open(".bzrignore", 'r').read()
 
193
        self.assertTrue(text.endswith('\r\n') or
 
194
                        text.endswith('\n') or
 
195
                        text.endswith('\r'))
 
196
 
 
197
    def test_does_not_add_dupe(self):
 
198
        tree = self.make_branch_and_tree(".")
 
199
        self.build_tree_contents([('.bzrignore', "myentry\n")])
 
200
        tree.add([".bzrignore"])
 
201
        ignores.tree_ignores_add_patterns(tree, ["myentry"])
 
202
        self.assertPatternsEquals(["myentry"])
 
203
 
 
204
    def test_non_ascii(self):
 
205
        tree = self.make_branch_and_tree(".")
 
206
        self.build_tree_contents([('.bzrignore',
 
207
                                   u"myentry\u1234\n".encode('utf-8'))])
 
208
        tree.add([".bzrignore"])
 
209
        ignores.tree_ignores_add_patterns(tree, [u"myentry\u5678"])
 
210
        self.assertPatternsEquals([u"myentry\u1234".encode('utf-8'),
 
211
                                   u"myentry\u5678".encode('utf-8')])
 
212
 
 
213
    def test_crlf(self):
 
214
        tree = self.make_branch_and_tree(".")
 
215
        self.build_tree_contents([('.bzrignore', "myentry1\r\n")])
 
216
        tree.add([".bzrignore"])
 
217
        ignores.tree_ignores_add_patterns(tree, ["myentry2", "foo"])
 
218
        self.assertEquals(open('.bzrignore', 'rb').read(), 'myentry1\r\nmyentry2\r\nfoo\r\n')
 
219
        self.assertPatternsEquals(["myentry1", "myentry2", "foo"])