Mercurial > hg > MakeItSo
view examples/doctest.txt @ 63:b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 06 Jan 2011 17:58:34 -0800 |
parents | 9a0014a760d1 |
children | 0152741621c1 |
line wrap: on
line source
MakeItSo! ========= Boilerplate: >>> import makeitso >>> import os >>> import shutil >>> import tempfile >>> from StringIO import StringIO Basic functionality: >>> example = os.path.join(here, 'example.txt') >>> template = makeitso.PolyTemplate([example], interactive=False) >>> template.missing() set(['name']) >>> template.substitute(name='foo') Hello foo Substitute to a buffer: >>> buffer = StringIO() >>> template = makeitso.PolyTemplate([example], output=buffer, interactive=False) >>> 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'] >>> template.substitute(foo='It', bar='life', subdir='mysubdir') >>> sorted(os.listdir(tempdir)) ['foo.txt', 'mysubdir'] >>> file(os.path.join(tempdir, 'foo.txt')).read().strip() 'It is a wonderful life' >>> os.listdir(os.path.join(tempdir, 'mysubdir')) ['life.txt'] >>> file(os.path.join(tempdir, 'mysubdir', 'life.txt')).read().strip() 'It' >>> shutil.rmtree(tempdir) Mixed case: >>> template = makeitso.PolyTemplate([example, exampledir], interactive=False) >>> variables = sorted(template.missing()) >>> variables ['bar', 'foo', 'name', 'subdir'] You need to provide output for mixing files and directory templates: >>> variables = dict([(i, i.title()) for i in variables]) >>> try: ... template.substitute(**variables) ... except AssertionError, e: ... pass >>> e AssertionError('Must specify output ... Provide an output: >>> template = makeitso.PolyTemplate([example, exampledir], output=tempdir, interactive=False) >>> template.substitute(**variables) >>> sorted(os.listdir(tempdir)) ['Subdir', 'example.txt', 'foo.txt'] >>> shutil.rmtree(tempdir)