~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_transport_implementations.py

  • Committer: Robert Collins
  • Date: 2006-01-12 01:02:32 UTC
  • mto: (1534.1.6 integration)
  • mto: This revision was merged to the branch mainline in revision 1543.
  • Revision ID: robertc@robertcollins.net-20060112010232-32d7a5b35bbc94df
Review feedback fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
def _append(fn, txt):
36
36
    """Append the given text (file-like object) to the supplied filename."""
37
37
    f = open(fn, 'ab')
38
 
    f.write(txt.read())
39
 
    f.flush()
40
 
    f.close()
41
 
    del f
 
38
    try:
 
39
        f.write(txt.read())
 
40
    finally:
 
41
        f.close()
42
42
 
43
43
 
44
44
class TestTransportImplementation(TestCaseInTempDir):
74
74
        
75
75
    def check_transport_contents(self, content, transport, relpath):
76
76
        """Check that transport.get(relpath).read() == content."""
77
 
        self.assertEqual(content, transport.get(relpath).read())
 
77
        self.assertEqualDiff(content, transport.get(relpath).read())
78
78
 
79
79
    def get_transport(self):
80
80
        """Return a connected transport to the local directory."""
86
86
        return t
87
87
 
88
88
    def assertListRaises(self, excClass, func, *args, **kwargs):
89
 
        """Many transport functions can return generators this makes sure
 
89
        """Fail unless excClass is raised when the iterator from func is used.
 
90
        
 
91
        Many transport functions can return generators this makes sure
90
92
        to wrap them in a list() call to make sure the whole generator
91
93
        is run, and that the proper exception is raised.
92
94
        """
178
180
        if t.is_readonly():
179
181
            return
180
182
        t.put('mode644', StringIO('test text\n'), mode=0644)
181
 
        self.assertMode(t, 'mode644', 0644)
 
183
        self.assertTransportMode(t, 'mode644', 0644)
182
184
        t.put('mode666', StringIO('test text\n'), mode=0666)
183
 
        self.assertMode(t, 'mode666', 0666)
 
185
        self.assertTransportMode(t, 'mode666', 0666)
184
186
        t.put('mode600', StringIO('test text\n'), mode=0600)
185
 
        self.assertMode(t, 'mode600', 0600)
 
187
        self.assertTransportMode(t, 'mode600', 0600)
186
188
        # Yes, you can put a file such that it becomes readonly
187
189
        t.put('mode400', StringIO('test text\n'), mode=0400)
188
 
        self.assertMode(t, 'mode400', 0400)
 
190
        self.assertTransportMode(t, 'mode400', 0400)
189
191
        t.put_multi([('mmode644', StringIO('text\n'))], mode=0644)
190
 
        self.assertMode(t, 'mmode644', 0644)
 
192
        self.assertTransportMode(t, 'mmode644', 0644)
191
193
        
192
194
    def test_mkdir(self):
193
195
        t = self.get_transport()
243
245
            return
244
246
        # Test mkdir with a mode
245
247
        t.mkdir('dmode755', mode=0755)
246
 
        self.assertMode(t, 'dmode755', 0755)
 
248
        self.assertTransportMode(t, 'dmode755', 0755)
247
249
        t.mkdir('dmode555', mode=0555)
248
 
        self.assertMode(t, 'dmode555', 0555)
 
250
        self.assertTransportMode(t, 'dmode555', 0555)
249
251
        t.mkdir('dmode777', mode=0777)
250
 
        self.assertMode(t, 'dmode777', 0777)
 
252
        self.assertTransportMode(t, 'dmode777', 0777)
251
253
        t.mkdir('dmode700', mode=0700)
252
 
        self.assertMode(t, 'dmode700', 0700)
 
254
        self.assertTransportMode(t, 'dmode700', 0700)
253
255
        # TODO: jam 20051215 test mkdir_multi with a mode
254
256
        t.mkdir_multi(['mdmode755'], mode=0755)
255
 
        self.assertMode(t, 'mdmode755', 0755)
 
257
        self.assertTransportMode(t, 'mdmode755', 0755)
256
258
 
257
259
    def test_copy_to(self):
258
260
        from bzrlib.transport.memory import MemoryTransport
271
273
        # Test that copying into a missing directory raises
272
274
        # NoSuchFile
273
275
        if t.is_readonly():
274
 
            os.mkdir('e')
275
 
            open('e/f', 'wb').write('contents of e')
 
276
            self.build_tree(['e/', 'e/f'])
276
277
        else:
277
278
            t.mkdir('e')
278
279
            t.put('e/f', StringIO('contents of e'))
294
295
            temp_transport = MemoryTransport("memory:/")
295
296
            t.copy_to(files, temp_transport, mode=mode)
296
297
            for f in files:
297
 
                self.assertMode(temp_transport, f, mode)
 
298
                self.assertTransportMode(temp_transport, f, mode)
298
299
 
299
300
    def test_append(self):
300
301
        t = self.get_transport()