1 from __future__
import absolute_import
, division
, unicode_literals
5 from cola
import gitcmds
10 class GitCmdsTestCase(helper
.GitRepositoryTestCase
):
11 """Tests the cola.gitcmds module."""
13 def test_currentbranch(self
):
14 """Test current_branch()."""
15 self
.assertEqual(gitcmds
.current_branch(self
.context
), 'master')
17 def test_branch_list_local(self
):
18 """Test branch_list(remote=False)."""
19 context
= self
.context
22 actual
= gitcmds
.branch_list(context
, remote
=False)
23 self
.assertEqual(expect
, actual
)
25 def test_branch_list_remote(self
):
26 """Test branch_list(remote=False)."""
27 context
= self
.context
29 actual
= gitcmds
.branch_list(context
, remote
=True)
30 self
.assertEqual(expect
, actual
)
33 self
.run_git('remote', 'add', 'origin', '.')
34 self
.run_git('fetch', 'origin')
35 expect
= ['origin/master']
36 actual
= gitcmds
.branch_list(context
, remote
=True)
37 self
.assertEqual(expect
, actual
)
39 self
.run_git('remote', 'rm', 'origin')
41 actual
= gitcmds
.branch_list(context
, remote
=True)
42 self
.assertEqual(expect
, actual
)
44 def test_upstream_remote(self
):
45 """Test getting the configured upstream remote"""
46 context
= self
.context
47 self
.assertEqual(gitcmds
.upstream_remote(context
), None)
48 self
.run_git('config', 'branch.master.remote', 'test')
50 self
.assertEqual(gitcmds
.upstream_remote(context
), 'test')
52 def test_tracked_branch(self
):
53 """Test tracked_branch()."""
54 context
= self
.context
55 self
.assertEqual(gitcmds
.tracked_branch(context
), None)
56 self
.run_git('config', 'branch.master.remote', 'test')
57 self
.run_git('config', 'branch.master.merge', 'refs/heads/master')
59 self
.assertEqual(gitcmds
.tracked_branch(context
), 'test/master')
61 def test_tracked_branch_other(self
):
62 """Test tracked_branch('other')."""
63 context
= self
.context
64 self
.assertEqual(gitcmds
.tracked_branch(context
, 'other'), None)
65 self
.run_git('config', 'branch.other.remote', 'test')
66 self
.run_git('config', 'branch.other.merge', 'refs/heads/other/branch')
68 self
.assertEqual(gitcmds
.tracked_branch(context
, 'other'),
71 def test_untracked_files(self
):
72 """Test untracked_files()."""
73 context
= self
.context
74 self
.touch('C', 'D', 'E')
75 self
.assertEqual(gitcmds
.untracked_files(context
), ['C', 'D', 'E'])
77 def test_all_files(self
):
78 context
= self
.context
79 self
.touch('other-file')
80 all_files
= gitcmds
.all_files(context
)
82 self
.assertTrue('A' in all_files
)
83 self
.assertTrue('B' in all_files
)
84 self
.assertTrue('other-file' in all_files
)
86 def test_tag_list(self
):
87 """Test tag_list()."""
88 context
= self
.context
90 self
.run_git('tag', 'a')
91 self
.run_git('tag', 'b')
92 self
.run_git('tag', 'c')
93 self
.assertEqual(gitcmds
.tag_list(context
), ['c', 'b', 'a'])
95 def test_merge_message_path(self
):
96 """Test merge_message_path()."""
97 context
= self
.context
98 self
.touch('.git/SQUASH_MSG')
99 self
.assertEqual(gitcmds
.merge_message_path(context
),
100 os
.path
.abspath('.git/SQUASH_MSG'))
101 self
.touch('.git/MERGE_MSG')
102 self
.assertEqual(gitcmds
.merge_message_path(context
),
103 os
.path
.abspath('.git/MERGE_MSG'))
104 os
.unlink(gitcmds
.merge_message_path(context
))
105 self
.assertEqual(gitcmds
.merge_message_path(context
),
106 os
.path
.abspath('.git/SQUASH_MSG'))
107 os
.unlink(gitcmds
.merge_message_path(context
))
108 self
.assertEqual(gitcmds
.merge_message_path(context
), None)
110 def test_all_refs(self
):
112 self
.run_git('branch', 'a')
113 self
.run_git('branch', 'b')
114 self
.run_git('branch', 'c')
115 self
.run_git('tag', 'd')
116 self
.run_git('tag', 'e')
117 self
.run_git('tag', 'f')
118 self
.run_git('remote', 'add', 'origin', '.')
119 self
.run_git('fetch', 'origin')
120 refs
= gitcmds
.all_refs(self
.context
)
121 self
.assertEqual(refs
,
122 ['a', 'b', 'c', 'master',
123 'origin/a', 'origin/b', 'origin/c', 'origin/master',
126 def test_all_refs_split(self
):
128 self
.run_git('branch', 'a')
129 self
.run_git('branch', 'b')
130 self
.run_git('branch', 'c')
131 self
.run_git('tag', 'd')
132 self
.run_git('tag', 'e')
133 self
.run_git('tag', 'f')
134 self
.run_git('remote', 'add', 'origin', '.')
135 self
.run_git('fetch', 'origin')
136 local
, remote
, tags
= gitcmds
.all_refs(self
.context
, split
=True)
137 self
.assertEqual(local
, ['a', 'b', 'c', 'master'])
138 self
.assertEqual(remote
,
139 ['origin/a', 'origin/b', 'origin/c', 'origin/master'])
140 self
.assertEqual(tags
, ['f', 'e', 'd'])
143 if __name__
== '__main__':