python-tldp/tests/tldptesttools.py

62 lines
1.6 KiB
Python

from __future__ import absolute_import, division, print_function
import os
import unittest
from tempfile import mkdtemp
import shutil
def stem_and_ext(name):
stem, ext = os.path.splitext(os.path.basename(name))
assert ext != ''
return stem, ext
def dir_to_components(reldir):
reldir, basename = os.path.split(os.path.normpath(reldir))
components = [basename]
while reldir != '':
reldir, basename = os.path.split(reldir)
components.append(basename)
assert len(components) >= 1
components.reverse()
return components
class TestToolsFilesystem(unittest.TestCase):
def setUp(self):
self.tempdir = mkdtemp(prefix='tldp-test-')
def tearDown(self):
shutil.rmtree(self.tempdir)
def adddir(self, reldir):
components = dir_to_components(reldir)
absdir = self.tempdir
while components:
absdir = os.path.join(absdir, components.pop(0))
if not os.path.isdir(absdir):
os.mkdir(absdir)
self.assertTrue(os.path.isdir(absdir))
relpath = os.path.relpath(absdir, self.tempdir)
return relpath, absdir
def addfile(self, reldir, filename, stem=None, ext=None):
if stem is None:
stem, _ = stem_and_ext(filename)
if ext is None:
_, ext = stem_and_ext(filename)
newname = os.path.join(self.tempdir, reldir, stem + ext)
if os.path.isfile(filename):
shutil.copy(filename, newname)
else:
with open(newname):
pass
relname = os.path.relpath(newname, self.tempdir)
return relname, newname
#
# -- end of file