from __future__ import print_function import os import shutil import tempfile import unittest from reverse_path import reverse_path class TestReversePath(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() os.chdir(self.tmpdir) def tearDown(self): shutil.rmtree(self.tmpdir) def test_absolute(self): self.assertEqual(self.tmpdir, reverse_path('/out')) def test_relative(self): os.mkdir('a') os.mkdir('b') self.assertEqual('..', reverse_path('a')) os.chdir('a') self.assertEqual('a', reverse_path('..')) self.assertEqual('.', reverse_path('../a')) self.assertEqual('../a', reverse_path('../b')) def test_symlink(self): os.mkdir('b') os.symlink('b', 'a') os.mkdir('b/d') os.symlink('b/d', 'c') self.assertEqual('..', reverse_path('a')) self.assertEqual('..', reverse_path('b')) self.assertEqual(self.tmpdir, reverse_path('c')) self.assertEqual('../..', reverse_path('b/d')) if __name__ == '__main__': unittest.main()