[project @ Arch-1:robey@lag.net--2003-public%secsh--dev--1.0--patch-139]

make loopback sftp tests the default
change the unit tests to default to always running the sftp tests locally,
and make a -R option to force the tests to run against a remote server.
the tests seem to work fine locally, and it helps test out server mode,
even though there's a danger that they could get isolated from reality
and only test that paramiko can talk to itself.
This commit is contained in:
Robey Pointer 2005-01-16 21:03:15 +00:00
parent b89025d409
commit 3db675d1be
1 changed files with 25 additions and 21 deletions

46
test.py
View File

@ -41,38 +41,42 @@ default_keyfile = os.path.join(os.environ.get('HOME', '/'), '.ssh/id_rsa')
default_passwd = None default_passwd = None
parser = OptionParser('usage: %prog [options]') parser = OptionParser('usage: %prog [options]')
parser.add_option('--sftp', action='store_true', dest='use_sftp', default=False,
help='run sftp tests (currently require an external sftp server)')
parser.add_option('-H', '--sftp-host', dest='hostname', type='string', default=default_host,
metavar='<host>',
help='remote host for sftp tests (default: %s)' % default_host)
parser.add_option('-U', '--sftp-user', dest='username', type='string', default=default_user,
metavar='<username>',
help='username for sftp tests (default: %s)' % default_user)
parser.add_option('-K', '--sftp-key', dest='keyfile', type='string', default=default_keyfile,
metavar='<keyfile>',
help='location of private key for sftp tests (default: %s)' % default_keyfile)
parser.add_option('-P', '--sftp-passwd', dest='password', type='string', default=default_passwd,
metavar='<password>',
help='(optional) password to unlock the private key for sftp tests')
parser.add_option('--no-pkey', action='store_false', dest='use_pkey', default=True, parser.add_option('--no-pkey', action='store_false', dest='use_pkey', default=True,
help='skip RSA/DSS private key tests (which can take a while)') help='skip RSA/DSS private key tests (which can take a while)')
parser.add_option('--no-transport', action='store_false', dest='use_transport', default=True, parser.add_option('--no-transport', action='store_false', dest='use_transport', default=True,
help='skip transport tests (which can take a while)') help='skip transport tests (which can take a while)')
parser.add_option('--no-sftp', action='store_false', dest='use_sftp', default=True,
help='skip SFTP client/server tests, which can be slow')
parser.add_option('--no-big-file', action='store_false', dest='use_big_file', default=True, parser.add_option('--no-big-file', action='store_false', dest='use_big_file', default=True,
help='skip big file SFTP tests, which are slow as molasses') help='skip big file SFTP tests, which are slow as molasses')
parser.add_option('-X', action='store_true', dest='use_loopback_sftp', default=False) parser.add_option('-R', action='store_false', dest='use_loopback_sftp', default=True,
help='perform SFTP tests against a remote server (by default, SFTP tests ' +
'are done through a loopback socket)')
parser.add_option('-H', '--sftp-host', dest='hostname', type='string', default=default_host,
metavar='<host>',
help='[with -R] host for remote sftp tests (default: %s)' % default_host)
parser.add_option('-U', '--sftp-user', dest='username', type='string', default=default_user,
metavar='<username>',
help='[with -R] username for remote sftp tests (default: %s)' % default_user)
parser.add_option('-K', '--sftp-key', dest='keyfile', type='string', default=default_keyfile,
metavar='<keyfile>',
help='[with -R] location of private key for remote sftp tests (default: %s)' %
default_keyfile)
parser.add_option('-P', '--sftp-passwd', dest='password', type='string', default=default_passwd,
metavar='<password>',
help='[with -R] (optional) password to unlock the private key for remote sftp tests')
options, args = parser.parse_args() options, args = parser.parse_args()
if len(args) > 0: if len(args) > 0:
parser.error('unknown argument(s)') parser.error('unknown argument(s)')
if options.use_sftp: if options.use_sftp:
SFTPTest.init(options.hostname, options.username, options.keyfile, options.password) if options.use_loopback_sftp:
if options.use_loopback_sftp: SFTPTest.init_loopback()
SFTPTest.init_loopback() else:
if not options.use_big_file: SFTPTest.init(options.hostname, options.username, options.keyfile, options.password)
SFTPTest.set_big_file_test(False) if not options.use_big_file:
SFTPTest.set_big_file_test(False)
# setup logging # setup logging
paramiko.util.log_to_file('test.log') paramiko.util.log_to_file('test.log')
@ -85,6 +89,6 @@ if options.use_pkey:
suite.addTest(unittest.makeSuite(KexTest)) suite.addTest(unittest.makeSuite(KexTest))
if options.use_transport: if options.use_transport:
suite.addTest(unittest.makeSuite(TransportTest)) suite.addTest(unittest.makeSuite(TransportTest))
if options.use_sftp or options.use_loopback_sftp: if options.use_sftp:
suite.addTest(unittest.makeSuite(SFTPTest)) suite.addTest(unittest.makeSuite(SFTPTest))
unittest.TextTestRunner(verbosity=2).run(suite) unittest.TextTestRunner(verbosity=2).run(suite)