2 from __future__
import absolute_import
, division
, unicode_literals
11 class ColaUtilsTestCase(unittest
.TestCase
):
12 """Tests the cola.utils module."""
14 def test_basename(self
):
15 """Test the utils.basename function."""
16 self
.assertEqual(utils
.basename('bar'), 'bar')
17 self
.assertEqual(utils
.basename('/bar'), 'bar')
18 self
.assertEqual(utils
.basename('/bar '), 'bar ')
19 self
.assertEqual(utils
.basename('foo/bar'), 'bar')
20 self
.assertEqual(utils
.basename('/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')
24 self
.assertEqual(utils
.basename('////foo //foo//bar'), 'bar')
26 def test_dirname(self
):
27 """Test the utils.dirname function."""
28 self
.assertEqual(utils
.dirname('bar'), '')
29 self
.assertEqual(utils
.dirname('/bar'), '')
30 self
.assertEqual(utils
.dirname('//bar'), '')
31 self
.assertEqual(utils
.dirname('///bar'), '')
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')
38 self
.assertEqual(utils
.dirname('///foo///bar'), '/foo')
40 def test_add_parents(self
):
41 """Test the utils.add_parents() function."""
42 paths
= set(['foo///bar///baz'])
43 path_set
= utils
.add_parents(paths
)
45 self
.assertTrue('foo/bar/baz' in path_set
)
46 self
.assertTrue('foo/bar' in path_set
)
47 self
.assertTrue('foo' in path_set
)
48 self
.assertFalse('foo///bar///baz' in path_set
)
50 # Ensure that the original set is unchanged
51 expect
= set(['foo///bar///baz'])
52 self
.assertEqual(expect
, paths
)
54 def test_tmp_filename_gives_good_file(self
):
55 first
= utils
.tmp_filename('test')
56 second
= utils
.tmp_filename('test')
58 self
.assertFalse(core
.exists(first
))
59 self
.assertFalse(core
.exists(second
))
61 self
.assertNotEqual(first
, second
)
62 self
.assertTrue(os
.path
.basename(first
).startswith('git-cola-test'))
63 self
.assertTrue(os
.path
.basename(second
).startswith('git-cola-test'))
65 def test_strip_one_abspath(self
):
67 actual
= utils
.strip_one('/usr/bin/git')
68 self
.assertEqual(expect
, actual
)
70 def test_strip_one_relpath(self
):
72 actual
= utils
.strip_one('bin/git')
73 self
.assertEqual(expect
, actual
)
75 def test_strip_one_nested_relpath(self
):
77 actual
= utils
.strip_one('local/bin/git')
78 self
.assertEqual(expect
, actual
)
80 def test_strip_one_basename(self
):
82 actual
= utils
.strip_one('git')
83 self
.assertEqual(expect
, actual
)
85 def test_select_directory(self
):
86 filename
= utils
.tmp_filename('test')
87 expect
= os
.path
.dirname(filename
)
88 actual
= utils
.select_directory([filename
])
89 self
.assertEqual(expect
, actual
)
91 def test_select_directory_prefers_directories(self
):
92 filename
= utils
.tmp_filename('test')
94 actual
= utils
.select_directory([filename
, '.'])
95 self
.assertEqual(expect
, actual
)
98 if __name__
== '__main__':