~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/stub_sftp.py

Merge sftp-leaks into catch-them-all resolving conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
345
345
        self.wrap_for_latency()
346
346
        tcs = self.server.test_case_server
347
347
        ssh_server = paramiko.Transport(self.request)
348
 
        # FIXME: The server key file should be created only once, not for each
349
 
        # connection -- vila 20100623
350
 
        key_file = osutils.pathjoin(tcs._homedir, 'test_rsa.key')
351
 
        f = open(key_file, 'w')
352
 
        f.write(STUB_SERVER_KEY)
353
 
        f.close()
354
 
        host_key = paramiko.RSAKey.from_private_key_file(key_file)
355
 
        ssh_server.add_server_key(host_key)
 
348
        ssh_server.add_server_key(tcs.get_host_key())
356
349
        ssh_server.set_subsystem_handler('sftp', paramiko.SFTPServer,
357
350
                                         StubSFTPServer, root=tcs._root,
358
351
                                         home=tcs._server_homedir)
442
435
        self._original_vendor = None
443
436
        self._vendor = ssh.ParamikoVendor()
444
437
        self._server_interface = server_interface
 
438
        self._host_key = None
445
439
        self.logs = []
446
440
        self.add_latency = 0
447
441
        self._homedir = None
462
456
                                   self)
463
457
        return server
464
458
 
 
459
    def get_host_key(self):
 
460
        if self._host_key is None:
 
461
            key_file = osutils.pathjoin(self._homedir, 'test_rsa.key')
 
462
            f = open(key_file, 'w')
 
463
            try:
 
464
                f.write(STUB_SERVER_KEY)
 
465
            finally:
 
466
                f.close()
 
467
            self._host_key = paramiko.RSAKey.from_private_key_file(key_file)
 
468
        return self._host_key
 
469
 
465
470
    def start_server(self, backing_server=None):
466
471
        # XXX: TODO: make sftpserver back onto backing_server rather than local
467
472
        # disk.
523
528
        self._vendor = ssh.LoopbackVendor()
524
529
        self.request_handler_class = TestingSFTPWithoutSSHConnectionHandler
525
530
 
 
531
    def get_host_key():
 
532
        return None
 
533
 
526
534
 
527
535
class SFTPAbsoluteServer(SFTPServerWithoutSSH):
528
536
    """A test server for sftp transports, using absolute urls."""