# HG changeset patch # User Jeff Hammel # Date 1293949715 28800 # Node ID 7cee2869bd7b6c2cad5d277973203c0e61439329 # Parent 0cba953a03caab20e9e7259c0fa96d294f8a7928 stub out directory example diff -r 0cba953a03ca -r 7cee2869bd7b examples/doctest.txt --- a/examples/doctest.txt Sat Jan 01 22:13:33 2011 -0800 +++ b/examples/doctest.txt Sat Jan 01 22:28:35 2011 -0800 @@ -5,11 +5,13 @@ >>> import makeitso >>> import os + >>> import shutil + >>> import tempfile >>> from StringIO import StringIO - >>> example = os.path.join(here, 'example.txt') Basic functionality: + >>> example = os.path.join(here, 'example.txt') >>> template = makeitso.PolyTemplate([example], interactive=False) >>> template.missing() set(['name']) @@ -23,4 +25,21 @@ >>> template.substitute(name='bar') >>> buffer.getvalue().strip() 'Hello bar' - + +Substitute to a file: + + >>> buffer = tempfile.mktemp() + >>> template = makeitso.PolyTemplate([example], output=buffer, interactive=False) + >>> template.substitute(name='fleem') + >>> file(buffer).read().strip() + 'Hello fleem' + >>> os.remove(buffer) + +Directory case: + + >>> exampledir = os.path.join(here, 'directory-example') + >>> tempdir = tempfile.mkdtemp() + >>> template = makeitso.PolyTemplate([exampledir], output=tempdir, interactive=False) + >>> sorted(template.missing()) + ['bar', 'foo', 'subdir'] + >>> shutil.rmtree(tempdir) diff -r 0cba953a03ca -r 7cee2869bd7b makeitso/makeitso.py --- a/makeitso/makeitso.py Sat Jan 01 22:13:33 2011 -0800 +++ b/makeitso/makeitso.py Sat Jan 01 22:28:35 2011 -0800 @@ -195,12 +195,15 @@ def substitute(self, **variables): output = ContentTemplate.substitute(self, **variables) f = self.output + if isinstance(f, basestring): if os.path.isdir(f): f = os.path.join(f, basename(self.name)) f = file(f, 'w') - print >> f, output - + print >> f, output + f.close() + else: + print >> f, output class DirectoryTemplate(ContentTemplate): """template for a directory structure"""