Merge pull request #520 from bariscelik/master
[git-cola.git] / test / utils_test.py
blobe523a8bff5e41454a2f731964e0beb16eaa8da6b
1 #!/usr/bin/env python
2 from __future__ import unicode_literals
4 import shutil
5 import os
6 import unittest
8 from cola import utils
10 class ColaUtilsTestCase(unittest.TestCase):
11 """Tests the cola.utils module."""
13 def test_basename(self):
14 """Test the utils.basename function."""
15 self.assertEqual(utils.basename('bar'), 'bar')
16 self.assertEqual(utils.basename('/bar'), 'bar')
17 self.assertEqual(utils.basename('/bar '), 'bar ')
18 self.assertEqual(utils.basename('foo/bar'), 'bar')
19 self.assertEqual(utils.basename('/foo/bar'), 'bar')
20 self.assertEqual(utils.basename('foo/foo/bar'), 'bar')
21 self.assertEqual(utils.basename('/foo/foo/bar'), 'bar')
22 self.assertEqual(utils.basename('/foo/foo//bar'), 'bar')
23 self.assertEqual(utils.basename('////foo //foo//bar'), 'bar')
25 def test_dirname(self):
26 """Test the utils.dirname function."""
27 self.assertEqual(utils.dirname('bar'), '')
28 self.assertEqual(utils.dirname('/bar'), '')
29 self.assertEqual(utils.dirname('//bar'), '')
30 self.assertEqual(utils.dirname('///bar'), '')
31 self.assertEqual(utils.dirname('foo/bar'), 'foo')
32 self.assertEqual(utils.dirname('foo//bar'), 'foo')
33 self.assertEqual(utils.dirname('foo /bar'), 'foo ')
34 self.assertEqual(utils.dirname('/foo//bar'), '/foo')
35 self.assertEqual(utils.dirname('/foo /bar'), '/foo ')
36 self.assertEqual(utils.dirname('//foo//bar'), '/foo')
37 self.assertEqual(utils.dirname('///foo///bar'), '/foo')
39 def test_add_parents(self):
40 """Test the utils.add_parents() function."""
41 paths = set(['foo///bar///baz'])
42 path_set = utils.add_parents(paths)
44 self.assertTrue('foo/bar/baz' in path_set)
45 self.assertTrue('foo/bar' in path_set)
46 self.assertTrue('foo' in path_set)
47 self.assertFalse('foo///bar///baz' in path_set)
49 # Ensure that the original set is unchanged
50 expect = set(['foo///bar///baz'])
51 self.assertEqual(expect, paths)
54 def test_tmpdir_gives_consistent_results(self):
55 utils.tmpdir.func.cache.clear()
57 first = utils.tmpdir()
58 second = utils.tmpdir()
59 third = utils.tmpdir()
61 self.assertEqual(first, second)
62 self.assertEqual(first, third)
64 shutil.rmtree(first)
66 def test_tmp_filename_gives_good_file(self):
67 utils.tmpdir.func.cache.clear()
69 tmpdir = utils.tmpdir()
70 first = utils.tmp_filename('test')
71 second = utils.tmp_filename('test')
73 self.assertNotEqual(first, second)
74 self.assertTrue(first.startswith(os.path.join(tmpdir, 'test')))
75 self.assertTrue(second.startswith(os.path.join(tmpdir, 'test')))
77 shutil.rmtree(tmpdir)
80 if __name__ == '__main__':
81 unittest.main()