| Index: tests/gcl_unittest.py
|
| ===================================================================
|
| --- tests/gcl_unittest.py (revision 15777)
|
| +++ tests/gcl_unittest.py (working copy)
|
| @@ -5,7 +5,9 @@
|
|
|
| """Unit tests for gcl.py."""
|
|
|
| +import StringIO
|
| import os
|
| +import sys
|
| import unittest
|
|
|
| # Local imports
|
| @@ -46,15 +48,14 @@
|
| 'ErrorExit', 'GenerateChangeName', 'GenerateDiff', 'GetCLs',
|
| 'GetChangelistInfoFile', 'GetCodeReviewSetting', 'GetEditor',
|
| 'GetFilesNotInCL', 'GetInfoDir', 'GetIssueDescription',
|
| - 'GetModifiedFiles', 'GetNamedNodeText', 'GetNodeNamedAttributeText',
|
| - 'GetRepositoryRoot', 'GetSVNFileInfo', 'GetSVNStatus',
|
| + 'GetModifiedFiles', 'GetRepositoryRoot', 'GetSVNStatus',
|
| 'GetSVNFileProperty', 'Help', 'IGNORE_PATHS', 'IsSVNMoved', 'IsTreeOpen',
|
| 'Lint', 'LoadChangelistInfo', 'LoadChangelistInfoForMultiple',
|
| - 'MISSING_TEST_MSG', 'Opened', 'ParseXML', 'PresubmitCL', 'ReadFile',
|
| + 'MISSING_TEST_MSG', 'Opened', 'PresubmitCL', 'ReadFile',
|
| 'RunShell',
|
| 'RunShellWithReturnCode', 'SEPARATOR', 'SendToRietveld', 'TryChange',
|
| - 'UnknownFiles', 'UploadCL', 'Warn', 'WriteFile', 'gcl_info_dir',
|
| - 'getpass', 'main', 'os', 'random', 're', 'read_gcl_info',
|
| + 'UnknownFiles', 'UploadCL', 'Warn', 'WriteFile', 'gclient',
|
| + 'gcl_info_dir', 'getpass', 'main', 'os', 'random', 're', 'read_gcl_info',
|
| 'repository_root', 'string', 'subprocess', 'sys', 'tempfile', 'upload',
|
| 'urllib2', 'use_shell', 'xml',
|
|
|
| @@ -62,37 +63,6 @@
|
| # If this test fails, you should add the relevant test.
|
| self.compareMembers(gcl, members)
|
|
|
| - def testGetSVNFileInfo(self):
|
| - def RunShellMock(command):
|
| - return r"""<?xml version="1.0"?>
|
| -<info>
|
| -<entry kind="file" path="%s" revision="14628">
|
| -<url>http://src.chromium.org/svn/trunk/src/chrome/app/d</url>
|
| -<repository><root>http://src.chromium.org/svn</root></repository>
|
| -<wc-info>
|
| -<schedule>add</schedule>
|
| -<depth>infinity</depth>
|
| -<copy-from-url>http://src.chromium.org/svn/trunk/src/chrome/app/DEPS</copy-from-url>
|
| -<copy-from-rev>14628</copy-from-rev>
|
| -<checksum>369f59057ba0e6d9017e28f8bdfb1f43</checksum>
|
| -</wc-info>
|
| -</entry>
|
| -</info>
|
| -""" % command[3]
|
| - gcl.RunShell = RunShellMock
|
| - filename = os.path.join('app', 'd')
|
| - info = gcl.GetSVNFileInfo(filename)
|
| - expected = {
|
| - 'URL': 'http://src.chromium.org/svn/trunk/src/chrome/app/d',
|
| - 'Repository Root': 'http://src.chromium.org/svn',
|
| - 'Schedule': 'add',
|
| - 'Copied From URL': 'http://src.chromium.org/svn/trunk/src/chrome/app/DEPS',
|
| - 'Copied From Rev': '14628',
|
| - 'Path': filename,
|
| - 'Node Kind': 'file',
|
| - }
|
| - self.assertEquals(sorted(info.items()), sorted(expected.items()))
|
| -
|
| def testGetSVNStatus(self):
|
| def RunShellMock(command):
|
| return r"""<?xml version="1.0"?>
|
| @@ -156,6 +126,41 @@
|
| info = gcl.GetSVNStatus(None)
|
| self.assertEquals(info, [])
|
|
|
| + def testHelp(self):
|
| + stdout = sys.stdout
|
| + dummy = StringIO.StringIO()
|
| + sys.stdout = dummy
|
| + gcl.Help()
|
| + sys.stdout = stdout
|
| + self.assertEquals(len(dummy.getvalue()), 1718)
|
|
|
| + def testGetRepositoryRoot(self):
|
| + try:
|
| + gcl.GetRepositoryRoot()
|
| + except Exception,e:
|
| + self.assertEquals(e.args[0], "gcl run outside of repository")
|
| +
|
| +
|
| +class ChangeInfoUnittest(GclTestsBase):
|
| + def testChangeInfoMembers(self):
|
| + members = [
|
| + 'CloseIssue', 'Delete', 'FileList', 'MissingTests', 'Save',
|
| + 'UpdateRietveldDescription', 'description', 'files', 'issue', 'name',
|
| + 'patch'
|
| + ]
|
| + # If this test fails, you should add the relevant test.
|
| + self.compareMembers(gcl.ChangeInfo(), members)
|
| +
|
| + def testChangeInfoBase(self):
|
| + files = [('M', 'foo'), ('A', 'bar')]
|
| + o = gcl.ChangeInfo('name2', 'issue2', 'description2', files)
|
| + self.assertEquals(o.name, 'name2')
|
| + self.assertEquals(o.issue, 'issue2')
|
| + self.assertEquals(o.description, 'description2')
|
| + self.assertEquals(o.files, files)
|
| + self.assertEquals(o.patch, None)
|
| + self.assertEquals(o.FileList(), ['foo', 'bar'])
|
| +
|
| +
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|