diff options
Diffstat (limited to 'lib/fixtures/_fixtures/tempdir.py')
-rw-r--r-- | lib/fixtures/_fixtures/tempdir.py | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/lib/fixtures/_fixtures/tempdir.py b/lib/fixtures/_fixtures/tempdir.py index 3af8d00..fd5502c 100644 --- a/lib/fixtures/_fixtures/tempdir.py +++ b/lib/fixtures/_fixtures/tempdir.py @@ -18,8 +18,6 @@ __all__ = [ 'TempDir', ] -import errno -import os import shutil import tempfile @@ -45,20 +43,6 @@ class TempDir(fixtures.Fixture): self.path = tempfile.mkdtemp(dir=self.rootdir) self.addCleanup(shutil.rmtree, self.path, ignore_errors=True) - def make_tree(self, *shape): - """Make a tree of files and directories underneath this temp dir. - - :param shape: A list of descriptions of files and directories to make. - Generally directories are described as ``"directory/"`` and - files are described as ``("filename", contents)``. Filenames can - also be specified without contents, in which case we'll make - something up. - - Directories can also be specified as ``(directory, None)`` or - ``(directory,)``. - """ - create_normal_shape(self.path, normalize_shape(shape)) - class NestedTempfile(fixtures.Fixture): """Nest all temporary files and directories inside another directory. @@ -74,74 +58,3 @@ class NestedTempfile(fixtures.Fixture): tempdir = self.useFixture(TempDir()).path patch = fixtures.MonkeyPatch("tempfile.tempdir", tempdir) self.useFixture(patch) - - -def normalize_entry(entry): - """Normalize a file shape entry. - - 'Normal' entries are either ("file", "content") or ("directory/", None). - - Standalone strings get turned into 2-tuples, with files getting made-up - contents. Singletons are treated the same. - - If something that looks like a file has no content, or something that - looks like a directory has content, we raise an error, as we don't know - whether the developer really intends a file or really intends a directory. - - :return: A list of 2-tuples containing paths and contents. - """ - if isinstance(entry, basestring): - if entry[-1] == '/': - return (entry, None) - else: - return (entry, "The file '%s'." % (entry,)) - else: - if len(entry) == 1: - return normalize_entry(entry[0]) - elif len(entry) == 2: - name, content = entry - is_dir = (name[-1] == '/') - if ((is_dir and content is not None) - or (not is_dir and content is None)): - raise ValueError( - "Directories must end with '/' and have no content, " - "files do not end with '/' and must have content, got %r" - % (entry,)) - return entry - else: - raise ValueError( - "Invalid file or directory description: %r" % (entry,)) - - -def normalize_shape(shape): - """Normalize a shape of a file tree to create. - - Normalizes each entry and returns a sorted list of entries. - """ - return sorted(map(normalize_entry, shape)) - - -def create_normal_shape(base_directory, shape): - """Create a file tree from 'shape' in 'base_directory'. - - 'shape' must be a list of 2-tuples of (name, contents). If name ends with - '/', then contents must be None, as it will be created as a directory. - Otherwise, contents must be provided. - - If either a file or directory is specified but the parent directory - doesn't exist, will create the parent directory. - """ - for name, contents in shape: - name = os.path.join(base_directory, name) - if name[-1] == '/': - os.makedirs(name) - else: - base_dir = os.path.dirname(name) - try: - os.makedirs(base_dir) - except OSError, e: - if e.errno != errno.EEXIST: - raise - f = open(name, 'w') - f.write(contents) - f.close() |