class TestBranchTransportDispatch(TestCase):
    def setUp(self):
        super(TestBranchTransportDispatch, self).setUp()
        memory_server = MemoryServer()
        memory_server.start_server()
        self.base_transport = get_transport(memory_server.get_url())
        self.factory = BranchTransportDispatch(self.base_transport)

    def test_writable_false_ignored(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=False), ''))
        transport.mkdir('.bzr')
        self.assertEqual(['.bzr'], transport.list_dir('.'))

    def test_writable_implies_writable(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), ''))
        transport.mkdir('.bzr')
        self.assertEqual(['.bzr'], transport.list_dir('.'))

    def test_gets_id_directory(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), ''))
        transport.mkdir('.bzr')
        self.assertEqual(['.bzr'], self.base_transport.list_dir('00/00/00/05'))

    def test_returns_trailing_path(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), '.bzr/foo'))
        self.assertEqual('.bzr/foo', path)

    def test_makeTransport_control(self):
        # makeTransport raises UnknownTransportType for the control transport.
        self.assertRaises(UnknownTransportType, self.factory.makeTransport,
                          (CONTROL_TRANSPORT, {}, ''))
class TestBranchTransportDispatch(TestCase):

    def setUp(self):
        super(TestBranchTransportDispatch, self).setUp()
        memory_server = MemoryServer()
        memory_server.start_server()
        self.base_transport = get_transport(memory_server.get_url())
        self.factory = BranchTransportDispatch(self.base_transport)

    def test_writable_false_ignored(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=False), ''))
        transport.mkdir('.bzr')
        self.assertEqual(['.bzr'], transport.list_dir('.'))

    def test_writable_implies_writable(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), ''))
        transport.mkdir('.bzr')
        self.assertEqual(['.bzr'], transport.list_dir('.'))

    def test_gets_id_directory(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), ''))
        transport.mkdir('.bzr')
        self.assertEqual(
            ['.bzr'], self.base_transport.list_dir('00/00/00/05'))

    def test_returns_trailing_path(self):
        transport, path = self.factory.makeTransport(
            (BRANCH_TRANSPORT, dict(id=5, writable=True), '.bzr/foo'))
        self.assertEqual('.bzr/foo', path)

    def test_makeTransport_control(self):
        # makeTransport raises UnknownTransportType for the control transport.
        self.assertRaises(
            UnknownTransportType, self.factory.makeTransport,
            (CONTROL_TRANSPORT, {}, ''))
 def setUp(self):
     super(TestBranchTransportDispatch, self).setUp()
     memory_server = MemoryServer()
     memory_server.start_server()
     self.base_transport = get_transport(memory_server.get_url())
     self.factory = BranchTransportDispatch(self.base_transport)
 def setUp(self):
     super(TestBranchTransportDispatch, self).setUp()
     memory_server = MemoryServer()
     memory_server.start_server()
     self.base_transport = get_transport(memory_server.get_url())
     self.factory = BranchTransportDispatch(self.base_transport)