Index: tests/gclient_scm_test.py |
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py |
index 5607f85dda123b20633d3daaf9003d91e43fda66..c6038779556f877293099a21ea0c21a929160728 100755 |
--- a/tests/gclient_scm_test.py |
+++ b/tests/gclient_scm_test.py |
@@ -752,6 +752,20 @@ from :3 |
M 100644 :4 a |
M 100644 :5 b |
+blob |
+mark :7 |
+data 5 |
+Mooh |
+ |
+commit refs/heads/feature |
+mark :8 |
+author Bob <bob@example.com> 1390311986 -0000 |
+committer Bob <bob@example.com> 1390311986 -0000 |
+data 6 |
+Add C |
+from :3 |
+M 100644 :7 c |
+ |
reset refs/heads/master |
from :3 |
""" |
@@ -967,6 +981,50 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase): |
'a7142dc9f0009350b96a11f372b6ea658592aa95') |
sys.stdout.close() |
+ def testUpdateMerge(self): |
+ if not self.enabled: |
+ return |
+ options = self.Options() |
+ options.merge = True |
+ scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir, |
+ relpath=self.relpath) |
+ scm._Run(['checkout', '-q', 'feature'], options) |
+ rev = scm.revinfo(options, (), None) |
+ file_list = [] |
+ scm.update(options, (), file_list) |
+ self.assertEquals(file_list, [join(self.base_path, x) |
+ for x in ['a', 'b', 'c']]) |
+ # The actual commit that is created is unstable, so we verify its tree and |
+ # parents instead. |
+ self.assertEquals(scm._Capture(['show', '--format=%T', '-s']), |
+ 'd2e35c10ac24d6c621e14a1fcadceb533155627d') |
iannucci
2014/01/21 21:40:47
Isn't this the same as `git rev-parse HEAD:`?
Bernhard Bauer
2014/01/21 23:03:54
No, this is the tree (i.e. without the commit meta
iannucci
2014/01/21 23:23:29
Right, hence the trailing colon :)
HEAD:path refe
Bernhard Bauer
2014/01/22 15:59:50
Ooh, that's neat! Done.
|
+ self.assertEquals(scm._Capture(['rev-parse', 'HEAD^1']), rev) |
+ self.assertEquals(scm._Capture(['rev-parse', 'HEAD^2']), |
+ scm._Capture(['rev-parse', 'origin/master'])) |
+ sys.stdout.close() |
+ |
+ def testUpdateRebase(self): |
+ if not self.enabled: |
+ return |
+ options = self.Options() |
+ scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir, |
+ relpath=self.relpath) |
+ scm._Run(['checkout', '-q', 'feature'], options) |
+ rev = scm.revinfo(options, (), None) |
+ file_list = [] |
+ # Fake a 'y' key press. |
+ __builtin__.raw_input = lambda x: 'y' |
iannucci
2014/01/21 21:40:47
scary :). Does this automatically get set back to
Bernhard Bauer
2014/01/21 23:03:54
I have to admit, I stole this from updateConflict
iannucci
2014/01/21 23:23:29
Heh, fair enough... as long as they're both the sa
Bernhard Bauer
2014/01/22 15:59:50
OK, I made it a method on |scm| which I can overri
|
+ scm.update(options, (), file_list) |
+ self.assertEquals(file_list, [join(self.base_path, x) |
+ for x in ['a', 'b', 'c']]) |
+ # The actual commit that is created is unstable, so we verify its tree and |
+ # parent instead. |
+ self.assertEquals(scm._Capture(['show', '--format=%T', '-s']), |
+ 'd2e35c10ac24d6c621e14a1fcadceb533155627d') |
+ self.assertEquals(scm._Capture(['rev-parse', 'HEAD^']), |
+ scm._Capture(['rev-parse', 'origin/master'])) |
+ sys.stdout.close() |
+ |
def testUpdateReset(self): |
if not self.enabled: |
return |