Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(663)

Side by Side Diff: tests/git_cl_test.py

Issue 1935633002: Revert of git_cl: Add the ability to set the description. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 git_cl.py.""" 6 """Unit tests for git_cl.py."""
7 7
8 import os 8 import os
9 import StringIO 9 import StringIO
10 import stat 10 import stat
11 import sys 11 import sys
12 import unittest 12 import unittest
13 import urlparse 13 import urlparse
14 14
15 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 15 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
16 16
17 from testing_support.auto_stub import TestCase 17 from testing_support.auto_stub import TestCase
18 18
19 import git_cl 19 import git_cl
20 import git_common 20 import git_common
21 import git_footers 21 import git_footers
22 import subprocess2 22 import subprocess2
23 23
24 class ChangelistMock():
25 # A class variable so we can access it when we don't have access to the
26 # instance that's being set.
27 desc = ""
28 def __init__(self, **kwargs):
29 pass
30 def GetIssue(self):
31 return 1
32 def GetDescription(self):
33 return ChangelistMock.desc
34 def UpdateDescription(self, desc):
35 ChangelistMock.desc = desc
36
37 class PresubmitMock(object): 24 class PresubmitMock(object):
38 def __init__(self, *args, **kwargs): 25 def __init__(self, *args, **kwargs):
39 self.reviewers = [] 26 self.reviewers = []
40 @staticmethod 27 @staticmethod
41 def should_continue(): 28 def should_continue():
42 return True 29 return True
43 30
44 31
45 class RietveldMock(object): 32 class RietveldMock(object):
46 def __init__(self, *args, **kwargs): 33 def __init__(self, *args, **kwargs):
(...skipping 1344 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 ] 1378 ]
1392 # TODO(tandrii): consider testing just set-commit and set-commit --clear, 1379 # TODO(tandrii): consider testing just set-commit and set-commit --clear,
1393 # but without copy-pasting tons of expectations, as modifying them later is 1380 # but without copy-pasting tons of expectations, as modifying them later is
1394 # super tedious. 1381 # super tedious.
1395 self.assertEqual(0, git_cl.main(['set-commit', '-d'])) 1382 self.assertEqual(0, git_cl.main(['set-commit', '-d']))
1396 1383
1397 def test_description_display(self): 1384 def test_description_display(self):
1398 out = StringIO.StringIO() 1385 out = StringIO.StringIO()
1399 self.mock(git_cl.sys, 'stdout', out) 1386 self.mock(git_cl.sys, 'stdout', out)
1400 1387
1401 self.mock(git_cl, 'Changelist', ChangelistMock) 1388 class MockChangelist():
1402 ChangelistMock.desc = 'foo\n' 1389 def __init__(self, **kwargs):
1390 pass
1391 def GetIssue(self):
1392 return 1
1393 def GetDescription(self):
1394 return 'foo'
1395
1396 self.mock(git_cl, 'Changelist', MockChangelist)
1403 1397
1404 self.assertEqual(0, git_cl.main(['description', '-d'])) 1398 self.assertEqual(0, git_cl.main(['description', '-d']))
1405 self.assertEqual('foo\n', out.getvalue()) 1399 self.assertEqual('foo\n', out.getvalue())
1406 1400
1407 def test_description_rietveld(self): 1401 def test_description_rietveld(self):
1408 out = StringIO.StringIO() 1402 out = StringIO.StringIO()
1409 self.mock(git_cl.sys, 'stdout', out) 1403 self.mock(git_cl.sys, 'stdout', out)
1410 self.mock(git_cl.Changelist, 'GetDescription', 1404 self.mock(git_cl.Changelist, 'GetDescription',
1411 lambda *args: 'foobar') 1405 lambda *args: 'foobar')
1412 1406
1413 self.calls = [ 1407 self.calls = [
1414 ((['git', 'config', 'rietveld.autoupdate'],), ''), 1408 ((['git', 'config', 'rietveld.autoupdate'],), ''),
1415 ((['git', 'config', 'rietveld.server'],), ''), 1409 ((['git', 'config', 'rietveld.server'],), ''),
1416 ((['git', 'config', 'rietveld.server'],), ''), 1410 ((['git', 'config', 'rietveld.server'],), ''),
1417 ] 1411 ]
1418 self.assertEqual(0, git_cl.main([ 1412 self.assertEqual(0, git_cl.main([
1419 'description', 'https://code.review.org/123123', '-d', '--rietveld'])) 1413 'description', 'https://code.review.org/123123', '-d', '--rietveld']))
1420 self.assertEqual('foobar\n', out.getvalue()) 1414 self.assertEqual('foobar\n', out.getvalue())
1421 1415
1422 def test_description_gerrit(self): 1416 def test_description_gerrit(self):
1423 out = StringIO.StringIO() 1417 out = StringIO.StringIO()
1424 self.mock(git_cl.sys, 'stdout', out) 1418 self.mock(git_cl.sys, 'stdout', out)
1425 self.mock(git_cl.Changelist, 'GetDescription', 1419 self.mock(git_cl.Changelist, 'GetDescription',
1426 lambda *args: 'foobar') 1420 lambda *args: 'foobar')
1427 1421
1428 self.assertEqual(0, git_cl.main([ 1422 self.assertEqual(0, git_cl.main([
1429 'description', 'https://code.review.org/123123', '-d', '--gerrit'])) 1423 'description', 'https://code.review.org/123123', '-d', '--gerrit']))
1430 self.assertEqual('foobar\n', out.getvalue()) 1424 self.assertEqual('foobar\n', out.getvalue())
1431 1425
1432 def test_description_set_raw(self):
1433 out = StringIO.StringIO()
1434 self.mock(git_cl.sys, 'stdout', out)
1435
1436 self.mock(git_cl, 'Changelist', ChangelistMock)
1437 class TMP():
1438 def splitlines(self):
1439 return ['hihi']
1440
1441 self.mock(git_cl.sys, 'stdin', TMP())
1442
1443 self.assertEqual(0, git_cl.main(['description', '-n', 'hihi']))
1444 self.assertEqual('hihi', ChangelistMock.desc)
1445
1446 def test_description_set_stdin(self):
1447 out = StringIO.StringIO()
1448 self.mock(git_cl.sys, 'stdout', out)
1449
1450 self.mock(git_cl, 'Changelist', ChangelistMock)
1451 class TMP():
1452 def splitlines(self):
1453 return ['hi', 'there']
1454
1455 self.mock(git_cl.sys, 'stdin', TMP())
1456
1457 self.assertEqual(0, git_cl.main(['description', '-n', '-']))
1458 self.assertEqual('hi\nthere', ChangelistMock.desc)
1459
1460 1426
1461 if __name__ == '__main__': 1427 if __name__ == '__main__':
1462 git_cl.logging.basicConfig( 1428 git_cl.logging.basicConfig(
1463 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR) 1429 level=git_cl.logging.DEBUG if '-v' in sys.argv else git_cl.logging.ERROR)
1464 unittest.main() 1430 unittest.main()
OLDNEW
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698