~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testtransport.py

  • Committer: Robert Collins
  • Date: 2005-10-19 07:25:40 UTC
  • Revision ID: robertc@robertcollins.net-20051019072540-0ab4d3bd16ff8c94
Change Transport.* to work with URL's.

 * bzrlib.transport.Transport now accepts *ONLY* url escaped relative paths 
   to apis like 'put', 'get' and 'has'. This is to provide consistent
   behaviour - it operates on url's only. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
from bzrlib.errors import NoSuchFile, FileExists, TransportNotPossible
22
22
from bzrlib.selftest import TestCase, TestCaseInTempDir
23
23
from bzrlib.selftest.HTTPTestUtil import TestCaseWithWebserver
24
 
from bzrlib.transport import memory
 
24
from bzrlib.transport import memory, urlescape
25
25
 
26
26
 
27
27
def _append(fn, txt):
32
32
    f.close()
33
33
    del f
34
34
 
 
35
class TestTransport(TestCase):
 
36
    """Test the non transport-concrete class functionality."""
 
37
 
 
38
    def test_urlescape(self):
 
39
        self.assertEqual('%25', urlescape('%'))
 
40
 
 
41
 
35
42
class TestTransportMixIn(object):
36
43
    """Subclass this, and it will provide a series of tests for a Transport.
37
44
    It assumes that the Transport object is connected to the 
51
58
    def test_has(self):
52
59
        t = self.get_transport()
53
60
 
54
 
        files = ['a', 'b', 'e', 'g']
 
61
        files = ['a', 'b', 'e', 'g', '%']
55
62
        self.build_tree(files)
56
63
        self.assertEqual(t.has('a'), True)
57
64
        self.assertEqual(t.has('c'), False)
 
65
        self.assertEqual(t.has(urlescape('%')), True)
58
66
        self.assertEqual(list(t.has_multi(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])),
59
67
                [True, True, False, False, True, False, True, False])
60
68
        self.assertEqual(list(t.has_multi(iter(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']))),