def setUp(self): super(TestTransportDispatch, self).setUp() memory_server = MemoryServer() memory_server.start_server() base_transport = get_transport(memory_server.get_url()) base_transport.mkdir('hosted') self.hosted_transport = base_transport.clone('hosted') self.factory = TransportDispatch(self.hosted_transport)
class TestTransportDispatch(TestCase): """Tests for the transport factory.""" def setUp(self): super(TestTransportDispatch, self).setUp() memory_server = MemoryServer() memory_server.start_server() base_transport = get_transport(memory_server.get_url()) base_transport.mkdir('hosted') self.hosted_transport = base_transport.clone('hosted') self.factory = TransportDispatch(self.hosted_transport) def test_control_conf_read_only(self): transport = self.factory._makeControlTransport( default_stack_on='/~foo/bar/baz') self.assertRaises(errors.TransportNotPossible, transport.put_bytes, '.bzr/control.conf', 'data') def test_control_conf_with_stacking(self): transport = self.factory._makeControlTransport( default_stack_on='/~foo/bar/baz') control_conf = transport.get_bytes('.bzr/control.conf') self.assertEqual('default_stack_on = /~foo/bar/baz\n', control_conf) def test_control_conf_with_no_stacking(self): transport = self.factory._makeControlTransport(default_stack_on='') self.assertEqual([], transport.list_dir('.')) def test_writable_false_implies_readonly(self): transport = self.factory._makeBranchTransport(id=5, writable=False) self.assertRaises(errors.TransportNotPossible, transport.put_bytes, '.bzr/README', 'data') def test_writable_implies_writable(self): transport = self.factory._makeBranchTransport(id=5, writable=True) transport.mkdir('.bzr') self.assertEqual(['.bzr'], transport.list_dir('.')) def test_gets_id_directory(self): transport = self.factory._makeBranchTransport(id=5, writable=True) transport.mkdir('.bzr') self.assertEqual(['.bzr'], self.hosted_transport.list_dir('00/00/00/05')) def test_makeTransport_control(self): # makeTransport returns a control transport for the tuple. log = [] self.factory._transport_factories[CONTROL_TRANSPORT] = ( lambda default_stack_on, trailing_path: log.append(default_stack_on )) transport, path = self.factory.makeTransport((CONTROL_TRANSPORT, { 'default_stack_on': 'foo' }, 'bar/baz')) self.assertEqual('bar/baz', path) self.assertEqual(['foo'], log) def test_makeTransport_branch(self): # makeTransport returns a control transport for the tuple. log = [] self.factory._transport_factories[BRANCH_TRANSPORT] = ( lambda id, writable, trailing_path: log.append((id, writable))) transport, path = self.factory.makeTransport((BRANCH_TRANSPORT, { 'id': 1, 'writable': True }, 'bar/baz')) self.assertEqual('bar/baz', path) self.assertEqual([(1, True)], log)
class TestTransportDispatch(TestCase): """Tests for the transport factory.""" def setUp(self): super(TestTransportDispatch, self).setUp() memory_server = MemoryServer() memory_server.start_server() base_transport = get_transport(memory_server.get_url()) base_transport.mkdir('hosted') self.hosted_transport = base_transport.clone('hosted') self.factory = TransportDispatch(self.hosted_transport) def test_control_conf_read_only(self): transport = self.factory._makeControlTransport( default_stack_on='/~foo/bar/baz') self.assertRaises( errors.TransportNotPossible, transport.put_bytes, '.bzr/control.conf', 'data') def test_control_conf_with_stacking(self): transport = self.factory._makeControlTransport( default_stack_on='/~foo/bar/baz') control_conf = transport.get_bytes('.bzr/control.conf') self.assertEqual('default_stack_on = /~foo/bar/baz\n', control_conf) def test_control_conf_with_no_stacking(self): transport = self.factory._makeControlTransport( default_stack_on='') self.assertEqual([], transport.list_dir('.')) def test_writable_false_implies_readonly(self): transport = self.factory._makeBranchTransport(id=5, writable=False) self.assertRaises( errors.TransportNotPossible, transport.put_bytes, '.bzr/README', 'data') def test_writable_implies_writable(self): transport = self.factory._makeBranchTransport(id=5, writable=True) transport.mkdir('.bzr') self.assertEqual(['.bzr'], transport.list_dir('.')) def test_gets_id_directory(self): transport = self.factory._makeBranchTransport(id=5, writable=True) transport.mkdir('.bzr') self.assertEqual( ['.bzr'], self.hosted_transport.list_dir('00/00/00/05')) def test_makeTransport_control(self): # makeTransport returns a control transport for the tuple. log = [] self.factory._transport_factories[CONTROL_TRANSPORT] = ( lambda default_stack_on, trailing_path: log.append(default_stack_on)) transport, path = self.factory.makeTransport( (CONTROL_TRANSPORT, {'default_stack_on': 'foo'}, 'bar/baz')) self.assertEqual('bar/baz', path) self.assertEqual(['foo'], log) def test_makeTransport_branch(self): # makeTransport returns a control transport for the tuple. log = [] self.factory._transport_factories[BRANCH_TRANSPORT] = ( lambda id, writable, trailing_path: log.append((id, writable))) transport, path = self.factory.makeTransport( (BRANCH_TRANSPORT, {'id': 1, 'writable': True}, 'bar/baz')) self.assertEqual('bar/baz', path) self.assertEqual([(1, True)], log)