# HG changeset patch # User Jeff Hammel # Date 1294765585 28800 # Node ID e74baa8e6df40dcb6ae8da66f44287ea99ffedd7 # Parent b6a46332cceda1943af1c7393c3488ddd09d9c4b fix CLI interface a bit....write a test for it diff -r b6a46332cced -r e74baa8e6df4 examples/doctest.txt --- a/examples/doctest.txt Tue Jan 11 07:33:59 2011 -0800 +++ b/examples/doctest.txt Tue Jan 11 09:06:25 2011 -0800 @@ -102,6 +102,14 @@ 'Hello bar' >>> os.remove(buffer) +Test CLI handler: + + >>> from makeitso.cli import MakeItSoCLI + >>> cli = MakeItSoCLI(MyTemplate) + >>> buffer = tempfile.mktemp() + >>> cli(buffer) + >>> os.remove(buffer) + Test to make sure permissions are preserved. This won't work on windows:: >>> buffer = tempfile.mktemp() diff -r b6a46332cced -r e74baa8e6df4 makeitso/cli.py --- a/makeitso/cli.py Tue Jan 11 07:33:59 2011 -0800 +++ b/makeitso/cli.py Tue Jan 11 09:06:25 2011 -0800 @@ -29,12 +29,12 @@ help=description) return parser - def parse(self, parser=None, options=None, args=None): + def parse(self, args=None, parser=None, options=None): # parse the command line - if not parser or not options or not args: + if not parser or not options: parser = self.parser() - options, args = parser.parse_args() + options, args = parser.parse_args(args=args) # ensure output is given if len(args) != 1: @@ -44,8 +44,11 @@ variables = dict([(key, value) for key, value in options.__dict__.items() if not key.startswith('_')]) + + # + return variables, args[0] - # instantiate the template - template = self.template_class(output=args[0], variables=variables) - - return template + def __call__(self, *args): + variables, output = self.parse(list(args)) + template = self.template_class(variables=variables) + template.substitute({}, output=output) diff -r b6a46332cced -r e74baa8e6df4 makeitso/python.py --- a/makeitso/python.py Tue Jan 11 07:33:59 2011 -0800 +++ b/makeitso/python.py Tue Jan 11 09:06:25 2011 -0800 @@ -39,6 +39,7 @@ def __init__(self, **kw): MakeItSoTemplate.__init__(self, **kw) + def main(args=sys.argv[:]): usage = '%prog [options]' diff -r b6a46332cced -r e74baa8e6df4 makeitso/python_package/{{package}}/template.py --- a/makeitso/python_package/{{package}}/template.py Tue Jan 11 07:33:59 2011 -0800 +++ b/makeitso/python_package/{{package}}/template.py Tue Jan 11 09:06:25 2011 -0800 @@ -24,9 +24,8 @@ def main(args=sys.argv[:]): cli = TemplateCLI() - template = cli.parse() - template.substitue() - + cli(args) + if __name__ == '__main__': main()