[BUG] NameError: global name 'ssh' is not defined
John Arbash Meinel
john at arbash-meinel.com
Wed Sep 13 16:51:33 BST 2006
Andrew Bennetts wrote:
> Alexander Belchenko wrote:
>> On my win32:
> [...]
>> The problem occurs when I try to access to another branch via sftp:
> [...]
>> File "E:\Bazaar\devel\bzr.dev\bzrlib\transport\ssh.py", line 104, in
>> _get_ssh_vendor
>> _ssh_vendor = ssh.ParamikoVendor()
>> NameError: global name 'ssh' is not defined
>
> Oops, this would appear to be my fault. I guess this means that the fallback to
> paramiko (when OpenSSH is not available) was broken by my recent refactoring of
> this code.
>
> I've attached a bundle that should fix this, and a couple of other pyflakes
> nits in those files. Clearly the tests are lacking though; we should probably
> make it so the ParamikoVendor is always tested, regardless of whether OpenSSH is
> available. Or rather, test *every* available SSH implementation (and paramiko
> is a hard dependency, so it's always available).
>
> -Andrew.
>
Well, we had a 'make sure we can do a real connection' test. But that
might just use whatever implementation is available.
Specifically, in bzrlib/tests/test_sftp_tranpsort.py we have:
class SSHVendorConnection(TestCaseWithSFTPServer):
"""Test that the ssh vendors can all connect.
Verify that a full-handshake (SSH over loopback TCP) sftp connection
works.
We have 3 sftp implementations in the test suite:
'loopback': Doesn't use ssh, just uses a local socket. Most tests are
done this way to save the handshaking time, so it is not
tested again here
'none': This uses paramiko's built-in ssh client and server,
and layers
sftp on top of it.
None: If 'ssh' exists on the machine, then it will be
spawned as a
child process.
"""
So we do test that we can actually connect with each. But unfortunately
it is done by manually setting 'self._test_vendor = ssh.ParamikoVendor'.
So we know that we can connect with at least Paramiko and loopback (I
don't think we are testing None.)
What we need is a test of _get_ssh_vendor(). We could restrict the path
to just the local working directory, which will force 'ssh -V' to fail,
and that can check that we fall back to paramiko.
John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060913/1b120ce2/attachment.pgp
More information about the bazaar
mailing list