def __init__(self, srcdir=None, confdir=None, outdir=None, doctreedir=None, buildername='html', confoverrides=None, status=None, warning=None, freshenv=None, warningiserror=True, tags=None, confname='conf.py', cleanenv=False): application.CONFIG_FILENAME = confname self.cleanup_trees = [test_root / 'generated'] if srcdir is None: srcdir = test_root if srcdir == '(temp)': tempdir = path(tempfile.mkdtemp()) self.cleanup_trees.append(tempdir) temproot = tempdir / 'root' test_root.copytree(temproot) srcdir = temproot elif srcdir == '(empty)': tempdir = path(tempfile.mkdtemp()) self.cleanup_trees.append(tempdir) temproot = tempdir / 'root' temproot.makedirs() (temproot / 'conf.py').write_text('') srcdir = temproot else: srcdir = path(srcdir) self.builddir = srcdir.joinpath('_build') self.cleanup_trees.append(self.builddir) if confdir is None: confdir = srcdir if outdir is None: outdir = srcdir.joinpath(self.builddir, buildername) if not outdir.isdir(): outdir.makedirs() self.cleanup_trees.insert(0, outdir) if doctreedir is None: doctreedir = srcdir.joinpath(srcdir, self.builddir, 'doctrees') if not doctreedir.isdir(): doctreedir.makedirs() if cleanenv: self.cleanup_trees.insert(0, doctreedir) if confoverrides is None: confoverrides = {} if status is None: status = StringIO() if warning is None: warning = ListOutput('stderr') if freshenv is None: freshenv = False if warningiserror is None: warningiserror = False application.Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir, buildername, confoverrides, status, warning, freshenv, warningiserror, tags)
def new_func(*args, **kwds): tempdir = path(tempfile.mkdtemp()) func(tempdir, *args, **kwds) tempdir.rmtree()
from classycode.tests.path import path # from nose import tools, SkipTest __all__ = [ 'test_root', 'test_roots', 'raises', 'raises_msg', 'skip_if', 'skip_unless', 'skip_unless_importable', 'Struct', 'ListOutput', 'TestApp', 'with_app', 'gen_with_app', 'path', 'with_tempdir', 'write_file', 'sprint', 'remove_unicode_literals', ] test_root = path(__file__).parent.joinpath('root').abspath() test_roots = path(__file__).parent.joinpath('roots').abspath() def _excstr(exc): if type(exc) is tuple: return str(tuple(map(_excstr, exc))) return exc.__name__ def raises(exc, func, *args, **kwds): """ Raise :exc:`AssertionError` if ``func(*args, **kwds)`` does not raise *exc*. """ try: func(*args, **kwds)