~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testtransport.py

[merge] robert

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']))),