1 from __future__ import print_function 2 3 import os 4 import shutil 5 import tempfile 6 import unittest 7 8 from reverse_path import reverse_path 9 10 class TestReversePath(unittest.TestCase): 11 def setUp(self): 12 self.tmpdir = tempfile.mkdtemp() 13 os.chdir(self.tmpdir) 14 15 def tearDown(self): 16 shutil.rmtree(self.tmpdir) 17 18 def test_absolute(self): 19 self.assertEqual(self.tmpdir, reverse_path('/out')) 20 21 def test_relative(self): 22 os.mkdir('a') 23 os.mkdir('b') 24 25 self.assertEqual('..', reverse_path('a')) 26 27 os.chdir('a') 28 self.assertEqual('a', reverse_path('..')) 29 self.assertEqual('.', reverse_path('../a')) 30 self.assertEqual('../a', reverse_path('../b')) 31 32 def test_symlink(self): 33 os.mkdir('b') 34 os.symlink('b', 'a') 35 os.mkdir('b/d') 36 os.symlink('b/d', 'c') 37 38 self.assertEqual('..', reverse_path('a')) 39 self.assertEqual('..', reverse_path('b')) 40 self.assertEqual(self.tmpdir, reverse_path('c')) 41 self.assertEqual('../..', reverse_path('b/d')) 42 43 44 if __name__ == '__main__': 45 unittest.main() 46