| Index: chromite/lib/cros_build_lib_unittest.py
|
| diff --git a/chromite/lib/cros_build_lib_unittest.py b/chromite/lib/cros_build_lib_unittest.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..ef6ee9e27ad0e1576df714a68bd05b533458c739
|
| --- /dev/null
|
| +++ b/chromite/lib/cros_build_lib_unittest.py
|
| @@ -0,0 +1,69 @@
|
| +#!/usr/bin/python
|
| +
|
| +import errno
|
| +import os
|
| +import unittest
|
| +import shutil
|
| +import tempfile
|
| +
|
| +import cros_build_lib
|
| +
|
| +class TestListFiles(unittest.TestCase):
|
| +
|
| + def setUp(self):
|
| + self.root_dir = tempfile.mkdtemp(prefix='listfiles_unittest')
|
| +
|
| + def tearDown(self):
|
| + shutil.rmtree(self.root_dir)
|
| +
|
| + def _createNestedDir(self, dir_structure):
|
| + for entry in dir_structure:
|
| + full_path = os.path.join(os.path.join(self.root_dir, entry))
|
| + # ensure dirs are created
|
| + try:
|
| + os.makedirs(os.path.dirname(full_path))
|
| + if full_path.endswith('/'):
|
| + # we only want to create directories
|
| + return
|
| + except OSError, err:
|
| + if err.errno == errno.EEXIST:
|
| + # we don't care if the dir already exists
|
| + pass
|
| + else:
|
| + raise
|
| + # create dummy files
|
| + tmp = open(full_path, 'w')
|
| + tmp.close()
|
| +
|
| + def testTraverse(self):
|
| + """
|
| + Test that we are traversing the directory properly
|
| + """
|
| + dir_structure = ['one/two/test.txt', 'one/blah.py',
|
| + 'three/extra.conf']
|
| + self._createNestedDir(dir_structure)
|
| +
|
| + files = cros_build_lib.ListFiles(self.root_dir)
|
| + for file in files:
|
| + file = file.replace(self.root_dir, '').lstrip('/')
|
| + if file not in dir_structure:
|
| + self.fail('%s was not found in %s' % (file, dir_structure))
|
| +
|
| + def testEmptyFilePath(self):
|
| + """
|
| + Test that we return nothing when directories are empty
|
| + """
|
| + dir_structure = ['one/', 'two/', 'one/a/']
|
| + self._createNestedDir(dir_structure)
|
| + files = cros_build_lib.ListFiles(self.root_dir)
|
| + self.assertEqual(files, [])
|
| +
|
| + def testNoSuchDir(self):
|
| + try:
|
| + cros_build_lib.ListFiles('/me/no/existe')
|
| + except OSError, err:
|
| + self.assertEqual(err.errno, errno.ENOENT)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|