python-tldp/tests/tldptesttools.py

61 lines
1.7 KiB
Python
Raw Normal View History

from __future__ import absolute_import, division, print_function
import os
import unittest
from tempfile import mkdtemp, mkstemp
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):
2016-02-16 22:12:42 +00:00
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
2016-02-16 22:12:42 +00:00
def addfile(self, reldir, filename, content=None, stem=None, ext=None):
if stem is None:
2016-02-16 22:12:42 +00:00
stem, _ = stem_and_ext(filename)
if ext is None:
2016-02-16 22:12:42 +00:00
_, 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) as f:
if content:
f.write(content)
relname = os.path.relpath(newname, self.tempdir)
return relname, newname
#
# -- end of file