| 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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 gclient.GClient.SetDefaultConfig('the_name', 'http://svn/url/the_name', | 127 gclient.GClient.SetDefaultConfig('the_name', 'http://svn/url/the_name', |
| 128 'other') | 128 'other') |
| 129 gclient.GClient.SaveConfig() | 129 gclient.GClient.SaveConfig() |
| 130 | 130 |
| 131 self.mox.ReplayAll() | 131 self.mox.ReplayAll() |
| 132 gclient.CMDconfig(None, options, | 132 gclient.CMDconfig(None, options, |
| 133 ('http://svn/url/the_name', 'other', 'args', 'ignored')) | 133 ('http://svn/url/the_name', 'other', 'args', 'ignored')) |
| 134 | 134 |
| 135 | 135 |
| 136 class GenericCommandTestCase(GclientTestCase): | 136 class GenericCommandTestCase(GclientTestCase): |
| 137 def ReturnValue(self, command, function, return_value): | 137 def ReturnValue(self, command, return_value): |
| 138 options = self.Options() | 138 options = self.Options() |
| 139 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 139 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
| 140 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) | 140 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) |
| 141 | 141 |
| 142 self.mox.ReplayAll() | 142 self.mox.ReplayAll() |
| 143 function = getattr(gclient, 'CMD' + command) |
| 143 result = function(None, options, self.args) | 144 result = function(None, options, self.args) |
| 144 self.assertEquals(result, return_value) | 145 self.assertEquals(result, return_value) |
| 145 | 146 |
| 146 def BadClient(self, function): | 147 def BadClient(self, command): |
| 147 options = self.Options() | 148 options = self.Options() |
| 148 gclient.GClient.LoadCurrentConfig(options).AndReturn(None) | 149 gclient.GClient.LoadCurrentConfig(options).AndReturn(None) |
| 149 | 150 |
| 150 self.mox.ReplayAll() | 151 self.mox.ReplayAll() |
| 152 function = getattr(gclient, 'CMD' + command) |
| 151 self.assertRaisesError( | 153 self.assertRaisesError( |
| 152 "client not configured; see 'gclient config'", | 154 "client not configured; see 'gclient config'", |
| 153 function, None, options, self.args) | 155 function, None, options, self.args) |
| 154 | 156 |
| 155 def Verbose(self, command, function): | 157 def Verbose(self, command): |
| 156 options = self.Options(verbose=True) | 158 options = self.Options(verbose=True) |
| 157 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 159 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
| 158 text = "# Dummy content\nclient = 'my client'" | 160 text = "# Dummy content\nclient = 'my client'" |
| 159 gclient.GClient.ConfigContent().AndReturn(text) | 161 gclient.GClient.ConfigContent().AndReturn(text) |
| 160 print(text) | 162 print(text) |
| 161 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) | 163 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) |
| 162 | 164 |
| 163 self.mox.ReplayAll() | 165 self.mox.ReplayAll() |
| 166 function = getattr(gclient, 'CMD' + command) |
| 164 result = function(None, options, self.args) | 167 result = function(None, options, self.args) |
| 165 self.assertEquals(result, 0) | 168 self.assertEquals(result, 0) |
| 166 | 169 |
| 167 | 170 |
| 168 class TestCMDcleanup(GenericCommandTestCase): | 171 class TestCMDcleanup(GenericCommandTestCase): |
| 169 def testGoodClient(self): | 172 def testGoodClient(self): |
| 170 self.ReturnValue('cleanup', gclient.CMDcleanup, 0) | 173 self.ReturnValue('cleanup', 0) |
| 171 def testError(self): | 174 def testError(self): |
| 172 self.ReturnValue('cleanup', gclient.CMDcleanup, 42) | 175 self.ReturnValue('cleanup', 42) |
| 173 def testBadClient(self): | 176 def testBadClient(self): |
| 174 self.BadClient(gclient.CMDcleanup) | 177 self.BadClient('cleanup') |
| 175 | 178 |
| 176 | 179 |
| 177 class TestCMDstatus(GenericCommandTestCase): | 180 class TestCMDstatus(GenericCommandTestCase): |
| 178 def testGoodClient(self): | 181 def testGoodClient(self): |
| 179 self.ReturnValue('status', gclient.CMDstatus, 0) | 182 self.ReturnValue('status', 0) |
| 180 def testError(self): | 183 def testError(self): |
| 181 self.ReturnValue('status', gclient.CMDstatus, 42) | 184 self.ReturnValue('status', 42) |
| 182 def testBadClient(self): | 185 def testBadClient(self): |
| 183 self.BadClient(gclient.CMDstatus) | 186 self.BadClient('status') |
| 184 | 187 |
| 185 | 188 |
| 186 class TestCMDrunhooks(GenericCommandTestCase): | 189 class TestCMDrunhooks(GenericCommandTestCase): |
| 187 def Options(self, verbose=False, *args, **kwargs): | 190 def Options(self, verbose=False, *args, **kwargs): |
| 188 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) | 191 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) |
| 189 | 192 |
| 190 def testGoodClient(self): | 193 def testGoodClient(self): |
| 191 self.ReturnValue('runhooks', gclient.CMDrunhooks, 0) | 194 self.ReturnValue('runhooks', 0) |
| 192 def testError(self): | 195 def testError(self): |
| 193 self.ReturnValue('runhooks', gclient.CMDrunhooks, 42) | 196 self.ReturnValue('runhooks', 42) |
| 194 def testBadClient(self): | 197 def testBadClient(self): |
| 195 self.BadClient(gclient.CMDrunhooks) | 198 self.BadClient('runhooks') |
| 196 | 199 |
| 197 | 200 |
| 198 class TestCMDupdate(GenericCommandTestCase): | 201 class TestCMDupdate(GenericCommandTestCase): |
| 199 def ReturnValue(self, command, function, return_value): | 202 def ReturnValue(self, command, return_value): |
| 200 options = self.Options() | 203 options = self.Options() |
| 201 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 204 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
| 202 gclient.GClient.GetVar("solutions") | 205 gclient.GClient.GetVar("solutions") |
| 203 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) | 206 gclient.GClient.RunOnDeps(command, self.args).AndReturn(return_value) |
| 204 | 207 |
| 205 self.mox.ReplayAll() | 208 self.mox.ReplayAll() |
| 209 function = getattr(gclient, 'CMD' + command) |
| 206 result = function(None, options, self.args) | 210 result = function(None, options, self.args) |
| 207 self.assertEquals(result, return_value) | 211 self.assertEquals(result, return_value) |
| 208 | 212 |
| 209 def Verbose(self, command, function): | 213 def Verbose(self, command): |
| 210 options = self.Options(verbose=True) | 214 options = self.Options(verbose=True) |
| 211 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) | 215 gclient.GClient.LoadCurrentConfig(options).AndReturn(gclient.GClient) |
| 212 gclient.GClient.GetVar("solutions") | 216 gclient.GClient.GetVar("solutions") |
| 213 text = "# Dummy content\nclient = 'my client'" | 217 text = "# Dummy content\nclient = 'my client'" |
| 214 gclient.GClient.ConfigContent().AndReturn(text) | 218 gclient.GClient.ConfigContent().AndReturn(text) |
| 215 print(text) | 219 print(text) |
| 216 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) | 220 gclient.GClient.RunOnDeps(command, self.args).AndReturn(0) |
| 217 | 221 |
| 218 self.mox.ReplayAll() | 222 self.mox.ReplayAll() |
| 223 function = getattr(gclient, 'CMD' + command) |
| 219 result = function(None, options, self.args) | 224 result = function(None, options, self.args) |
| 220 self.assertEquals(result, 0) | 225 self.assertEquals(result, 0) |
| 221 | 226 |
| 222 def Options(self, verbose=False, *args, **kwargs): | 227 def Options(self, verbose=False, *args, **kwargs): |
| 223 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) | 228 return self.OptionsObject(self, verbose=verbose, *args, **kwargs) |
| 224 | 229 |
| 225 def testBasic(self): | 230 def testBasic(self): |
| 226 self.ReturnValue('update', gclient.CMDupdate, 0) | 231 self.ReturnValue('update', 0) |
| 227 def testError(self): | 232 def testError(self): |
| 228 self.ReturnValue('update', gclient.CMDupdate, 42) | 233 self.ReturnValue('update', 42) |
| 229 def testBadClient(self): | 234 def testBadClient(self): |
| 230 self.BadClient(gclient.CMDupdate) | 235 self.BadClient('update') |
| 231 def testVerbose(self): | 236 def testVerbose(self): |
| 232 self.Verbose('update', gclient.CMDupdate) | 237 self.Verbose('update') |
| 233 | 238 |
| 234 | 239 |
| 235 class TestCMDdiff(GenericCommandTestCase): | 240 class TestCMDdiff(GenericCommandTestCase): |
| 236 def Options(self, *args, **kwargs): | 241 def Options(self, *args, **kwargs): |
| 237 return self.OptionsObject(self, *args, **kwargs) | 242 return self.OptionsObject(self, *args, **kwargs) |
| 238 | 243 |
| 239 def testBasic(self): | 244 def testBasic(self): |
| 240 self.ReturnValue('diff', gclient.CMDdiff, 0) | 245 self.ReturnValue('diff', 0) |
| 241 def testError(self): | 246 def testError(self): |
| 242 self.ReturnValue('diff', gclient.CMDdiff, 42) | 247 self.ReturnValue('diff', 42) |
| 243 def testBadClient(self): | 248 def testBadClient(self): |
| 244 self.BadClient(gclient.CMDdiff) | 249 self.BadClient('diff') |
| 245 def testVerbose(self): | 250 def testVerbose(self): |
| 246 self.Verbose('diff', gclient.CMDdiff) | 251 self.Verbose('diff') |
| 247 | 252 |
| 248 | 253 |
| 249 class TestCMDexport(GenericCommandTestCase): | 254 class TestCMDexport(GenericCommandTestCase): |
| 250 def testBasic(self): | 255 def testBasic(self): |
| 251 self.args = ['dir'] | 256 self.args = ['dir'] |
| 252 self.ReturnValue('export', gclient.CMDexport, 0) | 257 self.ReturnValue('export', 0) |
| 253 def testError(self): | 258 def testError(self): |
| 254 self.args = ['dir'] | 259 self.args = ['dir'] |
| 255 self.ReturnValue('export', gclient.CMDexport, 42) | 260 self.ReturnValue('export', 42) |
| 256 def testBadClient(self): | 261 def testBadClient(self): |
| 257 self.args = ['dir'] | 262 self.args = ['dir'] |
| 258 self.BadClient(gclient.CMDexport) | 263 self.BadClient('export') |
| 259 | 264 |
| 260 | 265 |
| 261 class TestCMDpack(GenericCommandTestCase): | 266 class TestCMDpack(GenericCommandTestCase): |
| 262 def Options(self, *args, **kwargs): | 267 def Options(self, *args, **kwargs): |
| 263 return self.OptionsObject(self, *args, **kwargs) | 268 return self.OptionsObject(self, *args, **kwargs) |
| 264 | 269 |
| 265 def testBasic(self): | 270 def testBasic(self): |
| 266 self.ReturnValue('pack', gclient.CMDpack, 0) | 271 self.ReturnValue('pack', 0) |
| 267 def testError(self): | 272 def testError(self): |
| 268 self.ReturnValue('pack', gclient.CMDpack, 42) | 273 self.ReturnValue('pack', 42) |
| 269 def testBadClient(self): | 274 def testBadClient(self): |
| 270 self.BadClient(gclient.CMDpack) | 275 self.BadClient('pack') |
| 271 | 276 |
| 272 | 277 |
| 273 class TestCMDrevert(GenericCommandTestCase): | 278 class TestCMDrevert(GenericCommandTestCase): |
| 274 def testBasic(self): | 279 def testBasic(self): |
| 275 self.ReturnValue('revert', gclient.CMDrevert, 0) | 280 self.ReturnValue('revert', 0) |
| 276 def testError(self): | 281 def testError(self): |
| 277 self.ReturnValue('revert', gclient.CMDrevert, 42) | 282 self.ReturnValue('revert', 42) |
| 278 def testBadClient(self): | 283 def testBadClient(self): |
| 279 self.BadClient(gclient.CMDrevert) | 284 self.BadClient('revert') |
| 280 | 285 |
| 281 | 286 |
| 282 class GClientClassTestCase(GclientTestCase): | 287 class GClientClassTestCase(GclientTestCase): |
| 283 def testDir(self): | 288 def testDir(self): |
| 284 members = [ | 289 members = [ |
| 285 'ConfigContent', 'DEFAULT_CLIENT_FILE_TEXT', | 290 'ConfigContent', 'DEFAULT_CLIENT_FILE_TEXT', |
| 286 'DEFAULT_SNAPSHOT_FILE_TEXT', 'DEFAULT_SNAPSHOT_SOLUTION_TEXT', | 291 'DEFAULT_SNAPSHOT_FILE_TEXT', 'DEFAULT_SNAPSHOT_SOLUTION_TEXT', |
| 287 'DEPS_FILE', 'FileImpl', 'FromImpl', 'GetVar', 'LoadCurrentConfig', | 292 'DEPS_FILE', 'FileImpl', 'FromImpl', 'GetVar', 'LoadCurrentConfig', |
| 288 'PrintRevInfo', 'RunOnDeps', 'SaveConfig', 'SetConfig', | 293 'PrintRevInfo', 'RunOnDeps', 'SaveConfig', 'SetConfig', |
| 289 'SetDefaultConfig', | 294 'SetDefaultConfig', |
| (...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1259 pass | 1264 pass |
| 1260 def test_VarImpl(self): | 1265 def test_VarImpl(self): |
| 1261 pass | 1266 pass |
| 1262 | 1267 |
| 1263 | 1268 |
| 1264 if __name__ == '__main__': | 1269 if __name__ == '__main__': |
| 1265 import unittest | 1270 import unittest |
| 1266 unittest.main() | 1271 unittest.main() |
| 1267 | 1272 |
| 1268 # vim: ts=2:sw=2:tw=80:et: | 1273 # vim: ts=2:sw=2:tw=80:et: |
| OLD | NEW |