OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Unit tests for gclient.py.""" | 6 """Unit tests for gclient.py.""" |
7 | 7 |
8 # Fixes include path. | 8 # Fixes include path. |
9 from super_mox import mox, SuperMoxTestBase | 9 from super_mox import mox, SuperMoxTestBase |
10 | 10 |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 for v in cmds: | 90 for v in cmds: |
91 # If it fails, you need to add a test case for the new command. | 91 # If it fails, you need to add a test case for the new command. |
92 self.assert_(v in known_commands) | 92 self.assert_(v in known_commands) |
93 self.mox.ReplayAll() | 93 self.mox.ReplayAll() |
94 | 94 |
95 class TestCMDconfig(GclientTestCase): | 95 class TestCMDconfig(GclientTestCase): |
96 def testMissingArgument(self): | 96 def testMissingArgument(self): |
97 exception_msg = "required argument missing; see 'gclient help config'" | 97 exception_msg = "required argument missing; see 'gclient help config'" |
98 | 98 |
99 self.mox.ReplayAll() | 99 self.mox.ReplayAll() |
100 self.assertRaisesError(exception_msg, gclient.CMDconfig, self.Options(), ()) | 100 self.assertRaisesError(exception_msg, gclient.CMDconfig, None, |
| 101 self.Options(), ()) |
101 | 102 |
102 def testExistingClientFile(self): | 103 def testExistingClientFile(self): |
103 options = self.Options() | 104 options = self.Options() |
104 exception_msg = ('%s file already exists in the current directory' % | 105 exception_msg = ('%s file already exists in the current directory' % |
105 options.config_filename) | 106 options.config_filename) |
106 gclient.os.path.exists(options.config_filename).AndReturn(True) | 107 gclient.os.path.exists(options.config_filename).AndReturn(True) |
107 | 108 |
108 self.mox.ReplayAll() | 109 self.mox.ReplayAll() |
109 self.assertRaisesError(exception_msg, gclient.CMDconfig, options, (1,)) | 110 self.assertRaisesError(exception_msg, gclient.CMDconfig, None, options, |
| 111 (1,)) |
110 | 112 |
111 def testFromText(self): | 113 def testFromText(self): |
112 options = self.Options(spec='config_source_content') | 114 options = self.Options(spec='config_source_content') |
113 gclient.os.path.exists(options.config_filename).AndReturn(False) | 115 gclient.os.path.exists(options.config_filename).AndReturn(False) |
114 gclient.GClient('.', options).AndReturn(gclient.GClient) | 116 gclient.GClient('.', options).AndReturn(gclient.GClient) |
115 gclient.GClient.SetConfig(options.spec) | 117 gclient.GClient.SetConfig(options.spec) |
116 gclient.GClient.SaveConfig() | 118 gclient.GClient.SaveConfig() |
117 | 119 |
118 self.mox.ReplayAll() | 120 self.mox.ReplayAll() |
119 gclient.CMDconfig(options, (1,),) | 121 gclient.CMDconfig(None, options, (1,),) |
120 | 122 |
121 def testCreateClientFile(self): | 123 def testCreateClientFile(self): |
122 options = self.Options() | 124 options = self.Options() |
123 gclient.os.path.exists(options.config_filename).AndReturn(False) | 125 gclient.os.path.exists(options.config_filename).AndReturn(False) |
124 gclient.GClient('.', options).AndReturn(gclient.GClient) | 126 gclient.GClient('.', options).AndReturn(gclient.GClient) |
125 gclient.GClient.SetDefaultConfig('the_name', 'http://svn/url/the_name', | 127 gclient.GClient.SetDefaultConfig('the_name', 'http://svn/url/the_name', |
126 'other') | 128 'other') |
127 gclient.GClient.SaveConfig() | 129 gclient.GClient.SaveConfig() |
128 | 130 |
129 self.mox.ReplayAll() | 131 self.mox.ReplayAll() |
130 gclient.CMDconfig(options, | 132 gclient.CMDconfig(None, options, |
131 ('http://svn/url/the_name', 'other', 'args', 'ignored')) | 133 ('http://svn/url/the_name', 'other', 'args', 'ignored')) |
132 | 134 |
133 | 135 |
134 class GenericCommandTestCase(GclientTestCase): | 136 class GenericCommandTestCase(GclientTestCase): |
135 def ReturnValue(self, command, function, return_value): | 137 def ReturnValue(self, command, function, return_value): |
136 options = self.Options() | 138 options = self.Options() |
137 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 139 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
138 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) | 140 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) |
139 | 141 |
140 self.mox.ReplayAll() | 142 self.mox.ReplayAll() |
141 result = function(options, self.args) | 143 result = function(None, options, self.args) |
142 self.assertEquals(result, return_value) | 144 self.assertEquals(result, return_value) |
143 | 145 |
144 def BadClient(self, function): | 146 def BadClient(self, function): |
145 options = self.Options() | 147 options = self.Options() |
146 gclient.GClient.LoadCurrentConfig(options).AndReturn(None) | 148 gclient.GClient.LoadCurrentConfig(options).AndReturn(None) |
147 | 149 |
148 self.mox.ReplayAll() | 150 self.mox.ReplayAll() |
149 self.assertRaisesError( | 151 self.assertRaisesError( |
150 "client not configured; see 'gclient config'", | 152 "client not configured; see 'gclient config'", |
151 function, options, self.args) | 153 function, None, options, self.args) |
152 | 154 |
153 def Verbose(self, command, function): | 155 def Verbose(self, command, function): |
154 options = self.Options(verbose=True) | 156 options = self.Options(verbose=True) |
155 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 157 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
156 text = "# Dummy content\nclient = 'my client'" | 158 text = "# Dummy content\nclient = 'my client'" |
157 gclient.GClient.ConfigContent().AndReturn(text) | 159 gclient.GClient.ConfigContent().AndReturn(text) |
158 print(text) | 160 print(text) |
159 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) | 161 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) |
160 | 162 |
161 self.mox.ReplayAll() | 163 self.mox.ReplayAll() |
162 result = function(options, self.args) | 164 result = function(None, options, self.args) |
163 self.assertEquals(result, 0) | 165 self.assertEquals(result, 0) |
164 | 166 |
165 | 167 |
166 class TestCMDcleanup(GenericCommandTestCase): | 168 class TestCMDcleanup(GenericCommandTestCase): |
167 def testGoodClient(self): | 169 def testGoodClient(self): |
168 self.ReturnValue('cleanup', gclient.CMDcleanup, 0) | 170 self.ReturnValue('cleanup', gclient.CMDcleanup, 0) |
169 def testError(self): | 171 def testError(self): |
170 self.ReturnValue('cleanup', gclient.CMDcleanup, 42) | 172 self.ReturnValue('cleanup', gclient.CMDcleanup, 42) |
171 def testBadClient(self): | 173 def testBadClient(self): |
172 self.BadClient(gclient.CMDcleanup) | 174 self.BadClient(gclient.CMDcleanup) |
(...skipping 21 matching lines...) Expand all Loading... |
194 | 196 |
195 | 197 |
196 class TestCMDupdate(GenericCommandTestCase): | 198 class TestCMDupdate(GenericCommandTestCase): |
197 def ReturnValue(self, command, function, return_value): | 199 def ReturnValue(self, command, function, return_value): |
198 options = self.Options() | 200 options = self.Options() |
199 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 201 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
200 gclient.GClient.GetVar("solutions") | 202 gclient.GClient.GetVar("solutions") |
201 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) | 203 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) |
202 | 204 |
203 self.mox.ReplayAll() | 205 self.mox.ReplayAll() |
204 result = function(options, self.args) | 206 result = function(None, options, self.args) |
205 self.assertEquals(result, return_value) | 207 self.assertEquals(result, return_value) |
206 | 208 |
207 def Verbose(self, command, function): | 209 def Verbose(self, command, function): |
208 options = self.Options(verbose=True) | 210 options = self.Options(verbose=True) |
209 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 211 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
210 gclient.GClient.GetVar("solutions") | 212 gclient.GClient.GetVar("solutions") |
211 text = "# Dummy content\nclient = 'my client'" | 213 text = "# Dummy content\nclient = 'my client'" |
212 gclient.GClient.ConfigContent().AndReturn(text) | 214 gclient.GClient.ConfigContent().AndReturn(text) |
213 print(text) | 215 print(text) |
214 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) | 216 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) |
215 | 217 |
216 self.mox.ReplayAll() | 218 self.mox.ReplayAll() |
217 result = function(options, self.args) | 219 result = function(None, options, self.args) |
218 self.assertEquals(result, 0) | 220 self.assertEquals(result, 0) |
219 | 221 |
220 def Options(self, verbose=False, *args, **kwargs): | 222 def Options(self, verbose=False, *args, **kwargs): |
221 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) | 223 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) |
222 | 224 |
223 def testBasic(self): | 225 def testBasic(self): |
224 self.ReturnValue('update', gclient.CMDupdate, 0) | 226 self.ReturnValue('update', gclient.CMDupdate, 0) |
225 def testError(self): | 227 def testError(self): |
226 self.ReturnValue('update', gclient.CMDupdate, 42) | 228 self.ReturnValue('update', gclient.CMDupdate, 42) |
227 def testBadClient(self): | 229 def testBadClient(self): |
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1257 pass | 1259 pass |
1258 def test_VarImpl(self): | 1260 def test_VarImpl(self): |
1259 pass | 1261 pass |
1260 | 1262 |
1261 | 1263 |
1262 if __name__ == '__main__': | 1264 if __name__ == '__main__': |
1263 import unittest | 1265 import unittest |
1264 unittest.main() | 1266 unittest.main() |
1265 | 1267 |
1266 # vim: ts=2:sw=2:tw=80:et: | 1268 # vim: ts=2:sw=2:tw=80:et: |
OLD | NEW |