tests/test_opts.py
author Alexander Solovyov <piranha@piranha.org.ua>
Thu, 11 Feb 2010 18:48:44 +0200
changeset 101 7507884b8dff
parent 96 82aaeccffbec
child 111 e40251bf5a23
permissions -rw-r--r--
Fix help for options with functions as their default arguments

#!/usr/bin/env python

import sys

from opster import command

opts = [('l', 'listen', 'localhost', 'ip to listen on'),
        ('p', 'port', 8000, 'port to listen on'),
        ('d', 'daemonize', False, 'daemonize process'),
        ('', 'pid-file', '', 'name of file to write process ID to')]

@command(opts, usage='[-l HOST] DIR')
def main(*dirs, **opts):
    '''This is some command

    It looks very similar to some serve command
    '''
    print locals()

@command(usage='[-l HOST] DIR')
def another(dirname,
            listen=('l', 'localhost', 'ip to listen on'),
            port=('p', 8000, 'port to listen on'),
            daemonize=('d', False, 'daemonize process'),
            pid_file=('', '', 'name of file to write process ID to'),
            test=('t', lambda x: x or 'test', 'testing help for a function')):
    '''Command with option declaration as keyword arguments

    Otherwise it's the same as previous command
    '''
    print locals()

if __name__ == '__main__':
    #main(argv=sys.argv[1:])
    another(argv=sys.argv[1:])