diff options
Diffstat (limited to 'tests/test_tools.py')
-rw-r--r-- | tests/test_tools.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/test_tools.py b/tests/test_tools.py new file mode 100644 index 0000000..55097e8 --- /dev/null +++ b/tests/test_tools.py @@ -0,0 +1,44 @@ +from tempfile import TemporaryDirectory +import os +import unittest + +from dhpython.tools import relpath, move_matching_files + + +class TestRelpath(unittest.TestCase): + def test_common_parent_dir(self): + r = relpath('/usr/share/python-foo/foo.py', '/usr/bin/foo') + self.assertEqual(r, '../share/python-foo/foo.py') + + def test_strips_common_prefix(self): + r = relpath('/usr/share/python-foo/foo.py', '/usr/share') + self.assertEqual(r, 'python-foo/foo.py') + + def test_trailing_slash_ignored(self): + r = relpath('/usr/share/python-foo/foo.py', '/usr/share/') + self.assertEqual(r, 'python-foo/foo.py') + + +class TestMoveMatchingFiles(unittest.TestCase): + def setUp(self): + self.tmpdir = TemporaryDirectory() + self.addCleanup(self.tmpdir.cleanup) + os.makedirs(self.tmppath('foo/bar/a/b/c/spam')) + for path in ('foo/bar/a/b/c/spam/file.so', + 'foo/bar/a/b/c/spam/file.py'): + open(self.tmppath(path), 'w').close() + + move_matching_files(self.tmppath('foo/bar/'), + self.tmppath('foo/baz/'), + 'spam/.*\.so$') + + def tmppath(self, *path): + return os.path.join(self.tmpdir.name, *path) + + def test_moved_matching_file(self): + self.assertTrue(os.path.exists( + self.tmppath('foo/baz/a/b/c/spam/file.so'))) + + def test_left_non_matching_file(self): + self.assertTrue(os.path.exists( + self.tmppath('foo/bar/a/b/c/spam/file.py'))) |