adding testing for execute and new function getfileset

This commit is contained in:
Martin A. Brown 2016-02-16 19:52:07 -08:00
parent b23a2ef1c5
commit 9845e90a39
2 changed files with 53 additions and 5 deletions

View File

@ -5,8 +5,34 @@ import os
import unittest
from tempfile import NamedTemporaryFile as ntf
from tldptesttools import *
# -- SUT
from tldp.utils import makefh, which
from tldp.utils import makefh, which, getfileset, execute
class Test_execute(TestToolsFilesystem):
def test_execute_returns_zero(self):
result = execute(['true'], logdir=self.tempdir)
self.assertEqual(0, result)
def test_execute_returns_nonzero(self):
result = execute(['false'], logdir=self.tempdir)
self.assertEqual(1, result)
def test_execute_exception_when_logdir_none(self):
with self.assertRaises(Exception) as ecm:
execute(['true'], logdir=None)
e = ecm.exception
self.assertTrue('Missing' in e.message)
def test_execute_exception_when_logdir_enoent(self):
logdir = os.path.join(self.tempdir, 'nonexistent-directory')
with self.assertRaises(IOError) as ecm:
execute(['true'], logdir=logdir)
e = ecm.exception
self.assertTrue('nonexistent' in e.filename)
class Test_which(unittest.TestCase):
@ -33,6 +59,14 @@ class Test_which(unittest.TestCase):
os.unlink(f.name)
class Test_getfileset(unittest.TestCase):
def test_getfileset(self):
here = os.path.dirname(os.path.abspath(__file__))
me = os.path.join('.', os.path.basename(__file__))
self.assertTrue(me in getfileset(here))
class Test_makefh(unittest.TestCase):
def test_makefh(self):

View File

@ -5,13 +5,14 @@ from __future__ import absolute_import, division, print_function
import os
import io
import sys
import errno
import subprocess
from tempfile import mkstemp
import logging
def getLogger(**opts):
level = opts.get('level', logging.DEBUG)
level = opts.get('level', logging.INFO)
logging.basicConfig(stream=sys.stderr, level=level)
logger = logging.getLogger()
return logger
@ -23,9 +24,11 @@ def execute(cmd, stdin=None, stdout=None, stderr=None,
logdir=None, env=os.environ):
prefix = os.path.basename(cmd[0]) + '.' + str(os.getpid()) + '-'
if logdir is None:
raise Exception("Missing, required parameter: logdir.")
assert os.path.isdir(logdir)
if logdir is None:
raise Exception("Missing required parameter: logdir.")
if not os.path.isdir(logdir):
raise IOError(errno.ENOENT, os.strerror(errno.ENOENT), logdir)
# -- not remapping STDIN, because that doesn't make sense here
if stdout is None:
@ -76,5 +79,16 @@ def makefh(thing):
(type(thing), thing,))
return f
def getfileset(dirname):
q = set()
ocwd = os.getcwd()
os.chdir(dirname)
for root, dirs, files in os.walk('.'):
q.update([os.path.join(root, x) for x in files])
os.chdir(ocwd)
return q
#
# -- end of file