/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smart.py

  • Committer: Aaron Bentley
  • Date: 2009-09-29 04:40:55 UTC
  • mfrom: (4717 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4718.
  • Revision ID: aaron@aaronbentley.com-20090929044055-e9jtpmz6eyut711h
Merged bzr.dev into fix_get_mtime.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
    smart,
37
37
    tests,
38
38
    urlutils,
 
39
    versionedfile,
39
40
    )
40
41
from bzrlib.branch import Branch, BranchReferenceFormat
41
42
import bzrlib.smart.branch
51
52
from bzrlib.tests import (
52
53
    split_suite_by_re,
53
54
    )
54
 
from bzrlib.transport import chroot, get_transport
 
55
from bzrlib.transport import chroot, get_transport, local, memory
55
56
 
56
57
 
57
58
def load_tests(standard_tests, module, loader):
80
81
class TestCaseWithChrootedTransport(tests.TestCaseWithTransport):
81
82
 
82
83
    def setUp(self):
 
84
        self.vfs_transport_factory = memory.MemoryServer
83
85
        tests.TestCaseWithTransport.setUp(self)
84
86
        self._chroot_server = None
85
87
 
87
89
        if self._chroot_server is None:
88
90
            backing_transport = tests.TestCaseWithTransport.get_transport(self)
89
91
            self._chroot_server = chroot.ChrootServer(backing_transport)
90
 
            self._chroot_server.setUp()
91
 
            self.addCleanup(self._chroot_server.tearDown)
 
92
            self.start_server(self._chroot_server)
92
93
        t = get_transport(self._chroot_server.get_url())
93
94
        if relpath is not None:
94
95
            t = t.clone(relpath)
95
96
        return t
96
97
 
97
98
 
98
 
class TestCaseWithSmartMedium(tests.TestCaseWithTransport):
 
99
class TestCaseWithSmartMedium(tests.TestCaseWithMemoryTransport):
99
100
 
100
101
    def setUp(self):
101
102
        super(TestCaseWithSmartMedium, self).setUp()
113
114
        return self.get_transport().get_smart_medium()
114
115
 
115
116
 
 
117
class TestByteStreamToStream(tests.TestCase):
 
118
 
 
119
    def test_repeated_substreams_same_kind_are_one_stream(self):
 
120
        # Make a stream - an iterable of bytestrings.
 
121
        stream = [('text', [versionedfile.FulltextContentFactory(('k1',), None,
 
122
            None, 'foo')]),('text', [
 
123
            versionedfile.FulltextContentFactory(('k2',), None, None, 'bar')])]
 
124
        fmt = bzrdir.format_registry.get('pack-0.92')().repository_format
 
125
        bytes = smart.repository._stream_to_byte_stream(stream, fmt)
 
126
        streams = []
 
127
        # Iterate the resulting iterable; checking that we get only one stream
 
128
        # out.
 
129
        fmt, stream = smart.repository._byte_stream_to_stream(bytes)
 
130
        for kind, substream in stream:
 
131
            streams.append((kind, list(substream)))
 
132
        self.assertLength(1, streams)
 
133
        self.assertLength(2, streams[0][1])
 
134
 
 
135
 
116
136
class TestSmartServerResponse(tests.TestCase):
117
137
 
118
138
    def test__eq__(self):
394
414
            'False', 'False', 'False', '', '', '', '', 'False')
395
415
 
396
416
 
 
417
class TestSmartServerRequestOpenBzrDir(tests.TestCaseWithMemoryTransport):
 
418
    
 
419
    def test_no_directory(self):
 
420
        backing = self.get_transport()
 
421
        request = smart.bzrdir.SmartServerRequestOpenBzrDir(backing)
 
422
        self.assertEqual(SmartServerResponse(('no', )),
 
423
            request.execute('does-not-exist'))
 
424
 
 
425
    def test_empty_directory(self):
 
426
        backing = self.get_transport()
 
427
        backing.mkdir('empty')
 
428
        request = smart.bzrdir.SmartServerRequestOpenBzrDir(backing)
 
429
        self.assertEqual(SmartServerResponse(('no', )),
 
430
            request.execute('empty'))
 
431
 
 
432
    def test_outside_root_client_path(self):
 
433
        backing = self.get_transport()
 
434
        request = smart.bzrdir.SmartServerRequestOpenBzrDir(backing,
 
435
            root_client_path='root')
 
436
        self.assertEqual(SmartServerResponse(('no', )),
 
437
            request.execute('not-root'))
 
438
 
 
439
    
 
440
class TestSmartServerRequestOpenBzrDir_2_1(tests.TestCaseWithMemoryTransport):
 
441
    
 
442
    def test_no_directory(self):
 
443
        backing = self.get_transport()
 
444
        request = smart.bzrdir.SmartServerRequestOpenBzrDir_2_1(backing)
 
445
        self.assertEqual(SmartServerResponse(('no', )),
 
446
            request.execute('does-not-exist'))
 
447
 
 
448
    def test_empty_directory(self):
 
449
        backing = self.get_transport()
 
450
        backing.mkdir('empty')
 
451
        request = smart.bzrdir.SmartServerRequestOpenBzrDir_2_1(backing)
 
452
        self.assertEqual(SmartServerResponse(('no', )),
 
453
            request.execute('empty'))
 
454
 
 
455
    def test_present_without_workingtree(self):
 
456
        backing = self.get_transport()
 
457
        request = smart.bzrdir.SmartServerRequestOpenBzrDir_2_1(backing)
 
458
        self.make_bzrdir('.')
 
459
        self.assertEqual(SmartServerResponse(('yes', 'no')),
 
460
            request.execute(''))
 
461
 
 
462
    def test_outside_root_client_path(self):
 
463
        backing = self.get_transport()
 
464
        request = smart.bzrdir.SmartServerRequestOpenBzrDir_2_1(backing,
 
465
            root_client_path='root')
 
466
        self.assertEqual(SmartServerResponse(('no',)),
 
467
            request.execute('not-root'))
 
468
 
 
469
    
 
470
class TestSmartServerRequestOpenBzrDir_2_1_disk(TestCaseWithChrootedTransport):
 
471
 
 
472
    def test_present_with_workingtree(self):
 
473
        self.vfs_transport_factory = local.LocalURLServer
 
474
        backing = self.get_transport()
 
475
        request = smart.bzrdir.SmartServerRequestOpenBzrDir_2_1(backing)
 
476
        bd = self.make_bzrdir('.')
 
477
        bd.create_repository()
 
478
        bd.create_branch()
 
479
        bd.create_workingtree()
 
480
        self.assertEqual(SmartServerResponse(('yes', 'yes')),
 
481
            request.execute(''))
 
482
 
 
483
 
397
484
class TestSmartServerRequestOpenBranch(TestCaseWithChrootedTransport):
398
485
 
399
486
    def test_no_branch(self):
414
501
 
415
502
    def test_branch_reference(self):
416
503
        """When there is a branch reference, the reference URL is returned."""
 
504
        self.vfs_transport_factory = local.LocalURLServer
417
505
        backing = self.get_transport()
418
506
        request = smart.bzrdir.SmartServerRequestOpenBranch(backing)
419
507
        branch = self.make_branch('branch')
444
532
 
445
533
    def test_branch_reference(self):
446
534
        """When there is a branch reference, the reference URL is returned."""
 
535
        self.vfs_transport_factory = local.LocalURLServer
447
536
        backing = self.get_transport()
448
537
        request = smart.bzrdir.SmartServerRequestOpenBranchV2(backing)
449
538
        branch = self.make_branch('branch')