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

Unified Diff: tests/gclient_test.py

Issue 389020: Split scm-specific functions out of gclient_scm.py to scm.py. (Closed)
Patch Set: 80 cols Created 11 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/gclient_scm_test.py ('k') | tests/scm_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/gclient_test.py
diff --git a/tests/gclient_test.py b/tests/gclient_test.py
index d335d426673e4609e83b56e0466d850b10bd300a..dc3dff4a5c182c799b5ec9268fdea98431c8f490 100755
--- a/tests/gclient_test.py
+++ b/tests/gclient_test.py
@@ -22,6 +22,8 @@ import __builtin__
import StringIO
import gclient
+# Temporary due to the "from scm import *" in gclient_scm.
+import scm
from super_mox import mox, IsOneOf, SuperMoxTestBase
@@ -53,6 +55,11 @@ class GClientBaseTestCase(BaseTestCase):
self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVNStatus')
self.mox.StubOutWithMock(gclient.gclient_scm, 'RunSVN')
self.mox.StubOutWithMock(gclient.gclient_scm, 'RunSVNAndGetFileList')
+ self.mox.StubOutWithMock(scm, 'CaptureSVN')
+ self.mox.StubOutWithMock(scm, 'CaptureSVNInfo')
+ self.mox.StubOutWithMock(scm, 'CaptureSVNStatus')
+ self.mox.StubOutWithMock(scm, 'RunSVN')
+ self.mox.StubOutWithMock(scm, 'RunSVNAndGetFileList')
self._gclient_gclient = gclient.GClient
gclient.GClient = self.mox.CreateMockAnything()
self._scm_wrapper = gclient.gclient_scm.CreateSCM
@@ -1066,112 +1073,6 @@ deps = {
pass
-class SubprocessCallAndFilterTestCase(BaseTestCase):
- def setUp(self):
- BaseTestCase.setUp(self)
- self.mox.StubOutWithMock(gclient.gclient_scm, 'CaptureSVN')
-
- def testSubprocessCallAndFilter(self):
- command = ['boo', 'foo', 'bar']
- in_directory = 'bleh'
- fail_status = None
- pattern = 'a(.*)b'
- test_string = 'ahah\naccb\nallo\naddb\n'
- class Mock(object):
- stdout = StringIO.StringIO(test_string)
- def wait(self):
- pass
- kid = Mock()
- print("\n________ running 'boo foo bar' in 'bleh'")
- for i in test_string:
- gclient.sys.stdout.write(i)
- gclient.gclient_utils.subprocess.Popen(
- command, bufsize=0, cwd=in_directory,
- shell=(gclient.sys.platform == 'win32'),
- stdout=gclient.gclient_utils.subprocess.PIPE,
- stderr=gclient.gclient_utils.subprocess.STDOUT).AndReturn(kid)
- self.mox.ReplayAll()
- compiled_pattern = gclient.re.compile(pattern)
- line_list = []
- capture_list = []
- def FilterLines(line):
- line_list.append(line)
- match = compiled_pattern.search(line)
- if match:
- capture_list.append(match.group(1))
- gclient.gclient_utils.SubprocessCallAndFilter(
- command, in_directory,
- True, True,
- fail_status, FilterLines)
- self.assertEquals(line_list, ['ahah', 'accb', 'allo', 'addb'])
- self.assertEquals(capture_list, ['cc', 'dd'])
-
- def testCaptureSVNStatus(self):
- gclient.gclient_scm.CaptureSVN(
- ['status', '--xml', '.']
- ).AndReturn(r"""<?xml version="1.0"?>
-<status>
-<target path=".">
-<entry path="unversionned_file.txt">
-<wc-status props="none" item="unversioned"></wc-status>
-</entry>
-<entry path="build\internal\essential.vsprops">
-<wc-status props="normal" item="modified" revision="14628">
-<commit revision="13818">
-<author>ajwong@chromium.org</author>
-<date>2009-04-16T00:42:06.872358Z</date>
-</commit>
-</wc-status>
-</entry>
-<entry path="chrome\app\d">
-<wc-status props="none" copied="true" tree-conflicted="true" item="added">
-</wc-status>
-</entry>
-<entry path="chrome\app\DEPS">
-<wc-status props="modified" item="modified" revision="14628">
-<commit revision="1279">
-<author>brettw@google.com</author>
-<date>2008-08-23T17:16:42.090152Z</date>
-</commit>
-</wc-status>
-</entry>
-<entry path="scripts\master\factory\gclient_factory.py">
-<wc-status props="normal" item="conflicted" revision="14725">
-<commit revision="14633">
-<author>nsylvain@chromium.org</author>
-<date>2009-04-27T19:37:17.977400Z</date>
-</commit>
-</wc-status>
-</entry>
-</target>
-</status>
-""")
- self.mox.ReplayAll()
- info = gclient.gclient_scm.CaptureSVNStatus('.')
- expected = [
- ('? ', 'unversionned_file.txt'),
- ('M ', 'build\\internal\\essential.vsprops'),
- ('A + ', 'chrome\\app\\d'),
- ('MM ', 'chrome\\app\\DEPS'),
- ('C ', 'scripts\\master\\factory\\gclient_factory.py'),
- ]
- self.assertEquals(sorted(info), sorted(expected))
-
- def testCaptureSVNStatusEmpty(self):
- gclient.gclient_scm.CaptureSVN(
- ['status', '--xml']
- ).AndReturn(r"""<?xml version="1.0"?>
-<status>
-<target
- path="perf">
-</target>
-</status>
-""")
- self.mox.ReplayAll()
- info = gclient.gclient_scm.CaptureSVNStatus(None)
- self.assertEquals(info, [])
-
-
if __name__ == '__main__':
import unittest
unittest.main()
« no previous file with comments | « tests/gclient_scm_test.py ('k') | tests/scm_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698