/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_transport.py

  • Committer: Martin Pool
  • Date: 2009-09-14 01:48:28 UTC
  • mfrom: (4685 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4688.
  • Revision ID: mbp@sourcefrog.net-20090914014828-ydr9rlkdfq2sv57z
Merge news

Show diffs side-by-side

added added

removed removed

Lines of Context:
363
363
    def test_abspath(self):
364
364
        # The abspath is always relative to the chroot_url.
365
365
        server = ChrootServer(get_transport('memory:///foo/bar/'))
366
 
        server.setUp()
 
366
        self.start_server(server)
367
367
        transport = get_transport(server.get_url())
368
368
        self.assertEqual(server.get_url(), transport.abspath('/'))
369
369
 
370
370
        subdir_transport = transport.clone('subdir')
371
371
        self.assertEqual(server.get_url(), subdir_transport.abspath('/'))
372
 
        server.tearDown()
373
372
 
374
373
    def test_clone(self):
375
374
        server = ChrootServer(get_transport('memory:///foo/bar/'))
376
 
        server.setUp()
 
375
        self.start_server(server)
377
376
        transport = get_transport(server.get_url())
378
377
        # relpath from root and root path are the same
379
378
        relpath_cloned = transport.clone('foo')
380
379
        abspath_cloned = transport.clone('/foo')
381
380
        self.assertEqual(server, relpath_cloned.server)
382
381
        self.assertEqual(server, abspath_cloned.server)
383
 
        server.tearDown()
384
382
 
385
383
    def test_chroot_url_preserves_chroot(self):
386
384
        """Calling get_transport on a chroot transport's base should produce a
393
391
            new_transport = get_transport(parent_url)
394
392
        """
395
393
        server = ChrootServer(get_transport('memory:///path/subpath'))
396
 
        server.setUp()
 
394
        self.start_server(server)
397
395
        transport = get_transport(server.get_url())
398
396
        new_transport = get_transport(transport.base)
399
397
        self.assertEqual(transport.server, new_transport.server)
400
398
        self.assertEqual(transport.base, new_transport.base)
401
 
        server.tearDown()
402
399
 
403
400
    def test_urljoin_preserves_chroot(self):
404
401
        """Using urlutils.join(url, '..') on a chroot URL should not produce a
410
407
            new_transport = get_transport(parent_url)
411
408
        """
412
409
        server = ChrootServer(get_transport('memory:///path/'))
413
 
        server.setUp()
 
410
        self.start_server(server)
414
411
        transport = get_transport(server.get_url())
415
412
        self.assertRaises(
416
413
            InvalidURLJoin, urlutils.join, transport.base, '..')
417
 
        server.tearDown()
418
414
 
419
415
 
420
416
class ChrootServerTest(TestCase):
428
424
        backing_transport = MemoryTransport()
429
425
        server = ChrootServer(backing_transport)
430
426
        server.setUp()
431
 
        self.assertTrue(server.scheme in _get_protocol_handlers().keys())
 
427
        try:
 
428
            self.assertTrue(server.scheme in _get_protocol_handlers().keys())
 
429
        finally:
 
430
            server.tearDown()
432
431
 
433
432
    def test_tearDown(self):
434
433
        backing_transport = MemoryTransport()
441
440
        backing_transport = MemoryTransport()
442
441
        server = ChrootServer(backing_transport)
443
442
        server.setUp()
444
 
        self.assertEqual('chroot-%d:///' % id(server), server.get_url())
445
 
        server.tearDown()
 
443
        try:
 
444
            self.assertEqual('chroot-%d:///' % id(server), server.get_url())
 
445
        finally:
 
446
            server.tearDown()
446
447
 
447
448
 
448
449
class ReadonlyDecoratorTransportTest(TestCase):
460
461
        import bzrlib.transport.readonly as readonly
461
462
        # connect to '.' via http which is not listable
462
463
        server = HttpServer()
463
 
        server.setUp()
464
 
        try:
465
 
            transport = get_transport('readonly+' + server.get_url())
466
 
            self.failUnless(isinstance(transport,
467
 
                                       readonly.ReadonlyTransportDecorator))
468
 
            self.assertEqual(False, transport.listable())
469
 
            self.assertEqual(True, transport.is_readonly())
470
 
        finally:
471
 
            server.tearDown()
 
464
        self.start_server(server)
 
465
        transport = get_transport('readonly+' + server.get_url())
 
466
        self.failUnless(isinstance(transport,
 
467
                                   readonly.ReadonlyTransportDecorator))
 
468
        self.assertEqual(False, transport.listable())
 
469
        self.assertEqual(True, transport.is_readonly())
472
470
 
473
471
 
474
472
class FakeNFSDecoratorTests(TestCaseInTempDir):
492
490
        from bzrlib.tests.http_server import HttpServer
493
491
        # connect to '.' via http which is not listable
494
492
        server = HttpServer()
495
 
        server.setUp()
496
 
        try:
497
 
            transport = self.get_nfs_transport(server.get_url())
498
 
            self.assertIsInstance(
499
 
                transport, bzrlib.transport.fakenfs.FakeNFSTransportDecorator)
500
 
            self.assertEqual(False, transport.listable())
501
 
            self.assertEqual(True, transport.is_readonly())
502
 
        finally:
503
 
            server.tearDown()
 
493
        self.start_server(server)
 
494
        transport = self.get_nfs_transport(server.get_url())
 
495
        self.assertIsInstance(
 
496
            transport, bzrlib.transport.fakenfs.FakeNFSTransportDecorator)
 
497
        self.assertEqual(False, transport.listable())
 
498
        self.assertEqual(True, transport.is_readonly())
504
499
 
505
500
    def test_fakenfs_server_default(self):
506
501
        # a FakeNFSServer() should bring up a local relpath server for itself
507
502
        import bzrlib.transport.fakenfs as fakenfs
508
503
        server = fakenfs.FakeNFSServer()
509
 
        server.setUp()
510
 
        try:
511
 
            # the url should be decorated appropriately
512
 
            self.assertStartsWith(server.get_url(), 'fakenfs+')
513
 
            # and we should be able to get a transport for it
514
 
            transport = get_transport(server.get_url())
515
 
            # which must be a FakeNFSTransportDecorator instance.
516
 
            self.assertIsInstance(
517
 
                transport, fakenfs.FakeNFSTransportDecorator)
518
 
        finally:
519
 
            server.tearDown()
 
504
        self.start_server(server)
 
505
        # the url should be decorated appropriately
 
506
        self.assertStartsWith(server.get_url(), 'fakenfs+')
 
507
        # and we should be able to get a transport for it
 
508
        transport = get_transport(server.get_url())
 
509
        # which must be a FakeNFSTransportDecorator instance.
 
510
        self.assertIsInstance(transport, fakenfs.FakeNFSTransportDecorator)
520
511
 
521
512
    def test_fakenfs_rename_semantics(self):
522
513
        # a FakeNFS transport must mangle the way rename errors occur to
587
578
    def setUp(self):
588
579
        super(TestTransportImplementation, self).setUp()
589
580
        self._server = self.transport_server()
590
 
        self._server.setUp()
591
 
        self.addCleanup(self._server.tearDown)
 
581
        self.start_server(self._server)
592
582
 
593
583
    def get_transport(self, relpath=None):
594
584
        """Return a connected transport to the local directory.