def test_stop_server(self):
     backing_transport = memory.MemoryTransport()
     server = chroot.ChrootServer(backing_transport)
     server.start_server()
     server.stop_server()
     self.assertFalse(
         server.scheme in transport._get_protocol_handlers().keys())
示例#2
0
 def memory_factory(url):
     from bzrlib.transport import memory
     result = memory.MemoryTransport(url)
     result._dirs = self._dirs
     result._files = self._files
     result._locks = self._locks
     return result
 def test_iter_files_recursive(self):
     t = memory.MemoryTransport()
     t.mkdir('dir')
     t.put_bytes('dir/foo', 'content')
     t.put_bytes('dir/bar', 'content')
     t.put_bytes('bar', 'content')
     paths = set(t.iter_files_recursive())
     self.assertEqual(set(['dir/foo', 'dir/bar', 'bar']), paths)
    def test_list_dir(self):
        t = memory.MemoryTransport()
        t.put_bytes('foo', 'content')
        t.mkdir('dir')
        t.put_bytes('dir/subfoo', 'content')
        t.put_bytes('dirlike', 'content')

        self.assertEqual(['dir', 'dirlike', 'foo'], sorted(t.list_dir('.')))
        self.assertEqual(['subfoo'], sorted(t.list_dir('dir')))
示例#5
0
 def test_protocol_version_detection_one(self):
     # SmartWSGIApp detects requests that don't start with
     # REQUEST_VERSION_TWO as version one.
     transport = memory.MemoryTransport()
     wsgi_app = wsgi.SmartWSGIApp(transport)
     fake_input = StringIO('hello\n')
     environ = self.build_environ({
         'REQUEST_METHOD':
         'POST',
         'CONTENT_LENGTH':
         len(fake_input.getvalue()),
         'wsgi.input':
         fake_input,
         'bzrlib.relpath':
         'foo',
     })
     iterable = wsgi_app(environ, self.start_response)
     response = self.read_response(iterable)
     self.assertEqual('200 OK', self.status)
     # Expect a version 1-encoded response.
     self.assertEqual('ok\x012\n', response)
示例#6
0
 def test_smart_wsgi_app_request_and_response(self):
     # SmartWSGIApp reads the smart request from the 'wsgi.input' file-like
     # object in the environ dict, and returns the response via the iterable
     # returned to the WSGI handler.
     transport = memory.MemoryTransport()
     transport.put_bytes('foo', 'some bytes')
     wsgi_app = wsgi.SmartWSGIApp(transport)
     wsgi_app.make_request = self._fake_make_request
     fake_input = StringIO('fake request')
     environ = self.build_environ({
         'REQUEST_METHOD':
         'POST',
         'CONTENT_LENGTH':
         len(fake_input.getvalue()),
         'wsgi.input':
         fake_input,
         'bzrlib.relpath':
         'foo',
     })
     iterable = wsgi_app(environ, self.start_response)
     response = self.read_response(iterable)
     self.assertEqual('200 OK', self.status)
     self.assertEqual('got bytes: fake request', response)
 def test_abspath(self):
     t = memory.MemoryTransport()
     self.assertEqual("memory:///relpath", t.abspath('relpath'))
 def test_construct(self):
     backing_transport = memory.MemoryTransport()
     server = chroot.ChrootServer(backing_transport)
     self.assertEqual(backing_transport, server.backing_transport)
 def test_stat(self):
     t = memory.MemoryTransport()
     t.put_bytes('foo', 'content')
     t.put_bytes('bar', 'phowar')
     self.assertEqual(7, t.stat('foo').st_size)
     self.assertEqual(6, t.stat('bar').st_size)
 def test_abspath_of_root(self):
     t = memory.MemoryTransport()
     self.assertEqual("memory:///", t.base)
     self.assertEqual("memory:///", t.abspath('/'))
 def test_parameters(self):
     t = memory.MemoryTransport()
     self.assertEqual(True, t.listable())
     self.assertEqual(False, t.is_readonly())
 def test_put_and_get(self):
     t = memory.MemoryTransport()
     t.put_file('path', StringIO('content'))
     self.assertEqual(t.get('path').read(), 'content')
     t.put_bytes('path', 'content')
     self.assertEqual(t.get('path').read(), 'content')
 def test_get_transport(self):
     memory.MemoryTransport()
 def test_mkdir(self):
     t = memory.MemoryTransport()
     t.mkdir('dir')
     t.append_bytes('dir/path', 'content')
     self.assertEqual(t.get('dir/path').read(), 'content')
 def test_has_missing(self):
     t = memory.MemoryTransport()
     self.assertEqual(False, t.has('foo'))
 def test_has_present(self):
     t = memory.MemoryTransport()
     t.append_bytes('foo', 'content')
     self.assertEqual(True, t.has('foo'))
 def test_get_missing(self):
     transport = memory.MemoryTransport()
     self.assertRaises(errors.NoSuchFile, transport.get, 'foo')
 def test_put_without_dir_fails(self):
     t = memory.MemoryTransport()
     self.assertRaises(errors.NoSuchFile, t.put_file, 'dir/path',
                       StringIO('content'))
 def test_append_without_dir_fails(self):
     t = memory.MemoryTransport()
     self.assertRaises(errors.NoSuchFile, t.append_bytes, 'dir/path',
                       'content')
 def test_get_url(self):
     backing_transport = memory.MemoryTransport()
     server = chroot.ChrootServer(backing_transport)
     server.start_server()
     self.addCleanup(server.stop_server)
     self.assertEqual('chroot-%d:///' % id(server), server.get_url())
 def test_mkdir_missing_parent(self):
     t = memory.MemoryTransport()
     self.assertRaises(errors.NoSuchFile, t.mkdir, 'dir/dir')
 def test_clone(self):
     t = memory.MemoryTransport()
     self.assertTrue(isinstance(t, memory.MemoryTransport))
     self.assertEqual("memory:///", t.clone("/").base)
 def test_mkdir_twice(self):
     t = memory.MemoryTransport()
     t.mkdir('dir')
     self.assertRaises(errors.FileExists, t.mkdir, 'dir')
 def test_local_abspath_non_local_transport(self):
     # the base implementation should throw
     t = memory.MemoryTransport()
     e = self.assertRaises(errors.NotLocalUrl, t.local_abspath, 't')
     self.assertEqual('memory:///t is not a local path.', str(e))
 def test_abspath_of_relpath_starting_at_root(self):
     t = memory.MemoryTransport()
     self.assertEqual("memory:///foo", t.abspath('/foo'))