1 from __future__
import absolute_import
, division
, unicode_literals
7 from cola
.models
import main
9 from test
import helper
12 class MainModelTestCase(helper
.GitRepositoryTestCase
):
13 """Tests the MainModel class."""
16 helper
.GitRepositoryTestCase
.setUp(self
)
17 self
.model
= main
.MainModel(cwd
=core
.getcwd())
19 def test_project(self
):
20 """Test the 'project' attribute."""
21 project
= os
.path
.basename(self
.test_path())
22 self
.assertEqual(self
.model
.project
, project
)
24 def test_local_branches(self
):
25 """Test the 'local_branches' attribute."""
26 self
.model
.update_status()
27 self
.assertEqual(self
.model
.local_branches
, ['master'])
29 def test_remote_branches(self
):
30 """Test the 'remote_branches' attribute."""
31 self
.model
.update_status()
32 self
.assertEqual(self
.model
.remote_branches
, [])
34 self
.git('remote', 'add', 'origin', '.')
35 self
.git('fetch', 'origin')
36 self
.model
.update_status()
37 self
.assertEqual(self
.model
.remote_branches
, ['origin/master'])
39 def test_modified(self
):
40 """Test the 'modified' attribute."""
41 self
.write_file('A', 'change')
42 self
.model
.update_status()
43 self
.assertEqual(self
.model
.modified
, ['A'])
45 def test_unstaged(self
):
46 """Test the 'unstaged' attribute."""
47 self
.write_file('A', 'change')
48 self
.write_file('C', 'C')
49 self
.model
.update_status()
50 self
.assertEqual(self
.model
.unstaged
, ['A', 'C'])
52 def test_untracked(self
):
53 """Test the 'untracked' attribute."""
54 self
.write_file('C', 'C')
55 self
.model
.update_status()
56 self
.assertEqual(self
.model
.untracked
, ['C'])
58 def test_remotes(self
):
59 """Test the 'remote' attribute."""
60 self
.git('remote', 'add', 'origin', '.')
61 self
.model
.update_status()
62 self
.assertEqual(self
.model
.remotes
, ['origin'])
64 def test_currentbranch(self
):
65 """Test the 'currentbranch' attribute."""
66 self
.git('checkout', '-b', 'test')
67 self
.model
.update_status()
68 self
.assertEqual(self
.model
.currentbranch
, 'test')
71 """Test the 'tags' attribute."""
72 self
.git('tag', 'test')
73 self
.model
.update_status()
74 self
.assertEqual(self
.model
.tags
, ['test'])
77 class RemoteArgsTestCase(unittest
.TestCase
):
80 self
.remote
= 'server'
81 self
.local_branch
= 'local'
82 self
.remote_branch
= 'remote'
84 def test_remote_args_fetch(self
):
87 main
.remote_args(self
.remote
,
88 local_branch
=self
.local_branch
,
89 remote_branch
=self
.remote_branch
)
91 self
.assertEqual(args
, [self
.remote
, 'remote:local'])
92 self
.assertTrue(kwargs
['verbose'])
93 self
.assertFalse(kwargs
['tags'])
94 self
.assertFalse(kwargs
['rebase'])
96 def test_remote_args_fetch_tags(self
):
99 main
.remote_args(self
.remote
,
101 local_branch
=self
.local_branch
,
102 remote_branch
=self
.remote_branch
)
104 self
.assertEqual(args
, [self
.remote
, 'remote:local'])
105 self
.assertTrue(kwargs
['verbose'])
106 self
.assertTrue(kwargs
['tags'])
107 self
.assertFalse(kwargs
['rebase'])
109 def test_remote_args_pull(self
):
112 main
.remote_args(self
.remote
,
115 remote_branch
=self
.remote_branch
)
117 self
.assertEqual(args
, [self
.remote
, 'remote'])
118 self
.assertTrue(kwargs
['verbose'])
119 self
.assertFalse(kwargs
['rebase'])
120 self
.assertFalse(kwargs
['tags'])
122 def test_remote_args_pull_rebase(self
):
125 main
.remote_args(self
.remote
,
129 remote_branch
=self
.remote_branch
)
131 self
.assertEqual(args
, [self
.remote
, 'remote'])
132 self
.assertTrue(kwargs
['verbose'])
133 self
.assertTrue(kwargs
['rebase'])
134 self
.assertFalse(kwargs
['tags'])
136 def test_remote_args_push(self
):
137 # Push, swap local and remote
139 main
.remote_args(self
.remote
,
140 local_branch
=self
.remote_branch
,
141 remote_branch
=self
.local_branch
)
143 self
.assertEqual(args
, [self
.remote
, 'local:remote'])
144 self
.assertTrue(kwargs
['verbose'])
145 self
.assertFalse(kwargs
['tags'])
146 self
.assertFalse(kwargs
['rebase'])
148 def test_remote_args_push_tags(self
):
149 # Push, swap local and remote
151 main
.remote_args(self
.remote
,
153 local_branch
=self
.remote_branch
,
154 remote_branch
=self
.local_branch
)
156 self
.assertEqual(args
, [self
.remote
, 'local:remote'])
157 self
.assertTrue(kwargs
['verbose'])
158 self
.assertTrue(kwargs
['tags'])
159 self
.assertFalse(kwargs
['rebase'])
161 def test_run_remote_action(self
):
163 def passthrough(*args
, **kwargs
):
164 return (args
, kwargs
)
167 main
.run_remote_action(passthrough
,
169 local_branch
=self
.local_branch
,
170 remote_branch
=self
.remote_branch
)
172 self
.assertEqual(args
, (self
.remote
, 'remote:local'))
173 self
.assertTrue(kwargs
['verbose'])
174 self
.assertFalse(kwargs
['tags'])
175 self
.assertFalse(kwargs
['rebase'])
178 if __name__
== '__main__':