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