mirror of https://github.com/tLDP/python-tldp
adding testing for execute and new function getfileset
This commit is contained in:
parent
b23a2ef1c5
commit
9845e90a39
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue