1 from __future__
import absolute_import
, division
, unicode_literals
10 from cola
.models
import main
15 class MainModelTestCase(helper
.GitRepositoryTestCase
):
16 """Tests the MainModel class."""
18 def test_project(self
):
19 """Test the 'project' attribute."""
20 project
= os
.path
.basename(self
.test_path())
21 self
.model
.set_worktree(core
.getcwd())
22 self
.assertEqual(self
.model
.project
, project
)
24 def test_local_branches(self
):
25 """Test the 'local_branches' attribute."""
27 self
.model
.update_status()
28 self
.assertEqual(self
.model
.local_branches
, ['master'])
30 def test_remote_branches(self
):
31 """Test the 'remote_branches' attribute."""
32 self
.model
.update_status()
33 self
.assertEqual(self
.model
.remote_branches
, [])
36 self
.run_git('remote', 'add', 'origin', '.')
37 self
.run_git('fetch', 'origin')
38 self
.model
.update_status()
39 self
.assertEqual(self
.model
.remote_branches
, ['origin/master'])
41 def test_modified(self
):
42 """Test the 'modified' attribute."""
43 self
.write_file('A', 'change')
44 self
.model
.update_status()
45 self
.assertEqual(self
.model
.modified
, ['A'])
47 def test_unstaged(self
):
48 """Test the 'unstaged' attribute."""
49 self
.write_file('A', 'change')
50 self
.write_file('C', 'C')
51 self
.model
.update_status()
52 self
.assertEqual(self
.model
.unstaged
, ['A', 'C'])
54 def test_untracked(self
):
55 """Test the 'untracked' attribute."""
56 self
.write_file('C', 'C')
57 self
.model
.update_status()
58 self
.assertEqual(self
.model
.untracked
, ['C'])
60 def test_remotes(self
):
61 """Test the 'remote' attribute."""
62 self
.run_git('remote', 'add', 'origin', '.')
63 self
.model
.update_status()
64 self
.assertEqual(self
.model
.remotes
, ['origin'])
66 def test_currentbranch(self
):
67 """Test the 'currentbranch' attribute."""
68 self
.run_git('checkout', '-b', 'test')
69 self
.model
.update_status()
70 self
.assertEqual(self
.model
.currentbranch
, 'test')
73 """Test the 'tags' attribute."""
75 self
.run_git('tag', 'test')
76 self
.model
.update_status()
77 self
.assertEqual(self
.model
.tags
, ['test'])
80 class RemoteArgsTestCase(unittest
.TestCase
):
82 self
.context
= context
= mock
.Mock()
83 context
.git
= git
.create()
84 self
.remote
= 'server'
85 self
.local_branch
= 'local'
86 self
.remote_branch
= 'remote'
88 def test_remote_args_fetch(self
):
90 (args
, kwargs
) = main
.remote_args(
93 local_branch
=self
.local_branch
,
94 remote_branch
=self
.remote_branch
,
97 self
.assertEqual(args
, [self
.remote
, 'remote:local'])
98 self
.assertTrue(kwargs
['verbose'])
99 self
.assertFalse('tags' in kwargs
)
100 self
.assertFalse('rebase' in kwargs
)
102 def test_remote_args_fetch_tags(self
):
104 (args
, kwargs
) = main
.remote_args(
108 local_branch
=self
.local_branch
,
109 remote_branch
=self
.remote_branch
,
112 self
.assertEqual(args
, [self
.remote
, 'remote:local'])
113 self
.assertTrue(kwargs
['verbose'])
114 self
.assertTrue(kwargs
['tags'])
115 self
.assertFalse('rebase' in kwargs
)
117 def test_remote_args_pull(self
):
119 (args
, kwargs
) = main
.remote_args(
124 remote_branch
=self
.remote_branch
,
127 self
.assertEqual(args
, [self
.remote
, 'remote'])
128 self
.assertTrue(kwargs
['verbose'])
129 self
.assertFalse('rebase' in kwargs
)
130 self
.assertFalse('tags' in kwargs
)
132 def test_remote_args_pull_rebase(self
):
134 (args
, kwargs
) = main
.remote_args(
140 remote_branch
=self
.remote_branch
,
143 self
.assertEqual(args
, [self
.remote
, 'remote'])
144 self
.assertTrue(kwargs
['verbose'])
145 self
.assertTrue(kwargs
['rebase'])
146 self
.assertFalse('tags' in kwargs
)
148 def test_remote_args_push(self
):
149 # Push, swap local and remote
150 (args
, kwargs
) = main
.remote_args(
153 local_branch
=self
.remote_branch
,
154 remote_branch
=self
.local_branch
,
157 self
.assertEqual(args
, [self
.remote
, 'local:remote'])
158 self
.assertTrue(kwargs
['verbose'])
159 self
.assertFalse('tags' in kwargs
)
160 self
.assertFalse('rebase' in kwargs
)
162 def test_remote_args_push_tags(self
):
163 # Push, swap local and remote
164 (args
, kwargs
) = main
.remote_args(
168 local_branch
=self
.remote_branch
,
169 remote_branch
=self
.local_branch
,
172 self
.assertEqual(args
, [self
.remote
, 'local:remote'])
173 self
.assertTrue(kwargs
['verbose'])
174 self
.assertTrue(kwargs
['tags'])
175 self
.assertFalse('rebase' in kwargs
)
177 def test_remote_args_push_same_remote_and_local(self
):
178 (args
, kwargs
) = main
.remote_args(
182 local_branch
=self
.local_branch
,
183 remote_branch
=self
.local_branch
,
187 self
.assertEqual(args
, [self
.remote
, 'local'])
188 self
.assertTrue(kwargs
['verbose'])
189 self
.assertTrue(kwargs
['tags'])
190 self
.assertFalse('rebase' in kwargs
)
192 def test_remote_args_push_set_upstream(self
):
193 (args
, kwargs
) = main
.remote_args(
197 local_branch
=self
.local_branch
,
198 remote_branch
=self
.local_branch
,
203 self
.assertEqual(args
, [self
.remote
, 'local'])
204 self
.assertTrue(kwargs
['verbose'])
205 self
.assertTrue(kwargs
['tags'])
206 self
.assertTrue(kwargs
['set_upstream'])
207 self
.assertFalse('rebase' in kwargs
)
209 def test_remote_args_rebase_only(self
):
210 (_
, kwargs
) = main
.remote_args(
211 self
.context
, self
.remote
, pull
=True, rebase
=True, ff_only
=True
213 self
.assertTrue(kwargs
['rebase'])
214 self
.assertFalse('ff_only' in kwargs
)
216 def test_run_remote_action(self
):
217 def passthrough(*args
, **kwargs
):
218 return (args
, kwargs
)
220 (args
, kwargs
) = main
.run_remote_action(
224 local_branch
=self
.local_branch
,
225 remote_branch
=self
.remote_branch
,
228 self
.assertEqual(args
, (self
.remote
, 'remote:local'))
229 self
.assertTrue(kwargs
['verbose'])
230 self
.assertFalse('tags' in kwargs
)
231 self
.assertFalse('rebase' in kwargs
)
234 if __name__
== '__main__':