Index: tests/git_cl_test.py |
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py |
index 571be654aa717d37e5f4fa1fd8680a1529d904cd..9b506fe20716af4b7314fbebf646783cf425bbea 100755 |
--- a/tests/git_cl_test.py |
+++ b/tests/git_cl_test.py |
@@ -21,6 +21,19 @@ import git_common |
import git_footers |
import subprocess2 |
+class ChangelistMock(): |
+ # A class variable so we can access it when we don't have access to the |
+ # instance that's being set. |
+ desc = "" |
+ def __init__(self, **kwargs): |
+ pass |
+ def GetIssue(self): |
+ return 1 |
+ def GetDescription(self): |
+ return ChangelistMock.desc |
+ def UpdateDescription(self, desc): |
+ ChangelistMock.desc = desc |
+ |
class PresubmitMock(object): |
def __init__(self, *args, **kwargs): |
self.reviewers = [] |
@@ -1385,15 +1398,8 @@ class TestGitCl(TestCase): |
out = StringIO.StringIO() |
self.mock(git_cl.sys, 'stdout', out) |
- class MockChangelist(): |
- def __init__(self, **kwargs): |
- pass |
- def GetIssue(self): |
- return 1 |
- def GetDescription(self): |
- return 'foo' |
- |
- self.mock(git_cl, 'Changelist', MockChangelist) |
+ self.mock(git_cl, 'Changelist', ChangelistMock) |
+ ChangelistMock.desc = 'foo\n' |
self.assertEqual(0, git_cl.main(['description', '-d'])) |
self.assertEqual('foo\n', out.getvalue()) |
@@ -1423,6 +1429,34 @@ class TestGitCl(TestCase): |
'description', 'https://code.review.org/123123', '-d', '--gerrit'])) |
self.assertEqual('foobar\n', out.getvalue()) |
+ def test_description_set_raw(self): |
+ out = StringIO.StringIO() |
+ self.mock(git_cl.sys, 'stdout', out) |
+ |
+ self.mock(git_cl, 'Changelist', ChangelistMock) |
+ class TMP(): |
+ def splitlines(self): |
+ return ['hihi'] |
+ |
+ self.mock(git_cl.sys, 'stdin', TMP()) |
+ |
+ self.assertEqual(0, git_cl.main(['description', '-n', 'hihi'])) |
+ self.assertEqual('hihi', ChangelistMock.desc) |
+ |
+ def test_description_set_stdin(self): |
+ out = StringIO.StringIO() |
+ self.mock(git_cl.sys, 'stdout', out) |
+ |
+ self.mock(git_cl, 'Changelist', ChangelistMock) |
+ class TMP(): |
+ def splitlines(self): |
+ return ['hi', 'there'] |
+ |
+ self.mock(git_cl.sys, 'stdin', TMP()) |
+ |
+ self.assertEqual(0, git_cl.main(['description', '-n', '-'])) |
+ self.assertEqual('hi\nthere', ChangelistMock.desc) |
+ |
if __name__ == '__main__': |
git_cl.logging.basicConfig( |