예제 #1
0
 def test_basic(self):
     def func(bar=False):
         return bar
     cases = [([], False), (['-b'], True)]
     for cs in cases:
         ret = rf.run(func, self.help(), argv=cs[0], check=False)
         self.assertEqual(ret, cs[1])
예제 #2
0
 def test_lambda(self):
     func = lambda foo, bar=False: (foo, bar)
     cases = [
         (['2'], (2, False)),
         (['-b', '3'], (3, True)),
         (['4', '--bar'], (4, True))
     ]
     for cs in cases:
         ret = rf.run(func, self.help(), argv=cs[0], check=False)
         self.assertEqual(ret, cs[1])
예제 #3
0
 def test_callable_object(self):
     class Func(object):
         def __call__(self, foo, bar=None):
             return (foo, bar)
     cases = [
         (['2'], (2, None)),
         (['-b', '3'], (3, True)),
         (['4', '--bar'], (4, True))
     ]
     for cs in cases:
         ret = rf.run(Func(), self.help(), argv=cs[0], check=False)
         self.assertEqual(ret, cs[1])
예제 #4
0
 def test_class(self):
     class Func(object):
         def __init__(self, foo, bar=None):
             self.data = (foo, bar)
     cases = [
         (['2'], (2, None)),
         (['-b', '3'], (3, True)),
         (['4', '--bar'], (4, True))
     ]
     for cs in cases:
         ret = rf.run(Func, self.help(), argv=cs[0], check=False)
         self.assertEqual(ret.data, cs[1])
예제 #5
0
파일: basic.py 프로젝트: joelimome/runfunc
#
# This file is part of the run package released under the BSD license.
#
import sys
import runfunc as rf

class Help(rf.Help):
    """\
    This is a blurb about this program. Its very entertaining to
    watch and think about what we might do with it.

        Look ma. Formatted text.

    And stuff
    """
    usage   = "%prog [options] value"

    value = rf.Check(int, "A value to multiply.")
    factor = rf.Check(float, "A factor by which to multiply.", opt='f')
    random = rf.Stream("r", "An input file to read from.", opt='r')
    verbose = rf.Flag("Multiply verbosely.", opt='v')

def main(value, factor=2.0, random=sys.stdin, verbose=False):
    newval = value * factor
    if verbose:
        print "%d * %s = %s" % (value, factor, newval)
    else:
        print newval

rf.run(main, Help())
예제 #6
0
파일: basic.py 프로젝트: joelimome/runfunc
import sys
import runfunc as rf


class Help(rf.Help):
    """\
    This is a blurb about this program. Its very entertaining to
    watch and think about what we might do with it.

        Look ma. Formatted text.

    And stuff
    """
    usage = "%prog [options] value"

    value = rf.Check(int, "A value to multiply.")
    factor = rf.Check(float, "A factor by which to multiply.", opt='f')
    random = rf.Stream("r", "An input file to read from.", opt='r')
    verbose = rf.Flag("Multiply verbosely.", opt='v')


def main(value, factor=2.0, random=sys.stdin, verbose=False):
    newval = value * factor
    if verbose:
        print "%d * %s = %s" % (value, factor, newval)
    else:
        print newval


rf.run(main, Help())
예제 #7
0
 def test_no_run(self):
     class Help(rf.Help):
         pass
     def func():
         return 10
     self.assertEqual(rf.run(func, Help()), None)