Index: tests/bot_update_coverage_test.py |
diff --git a/tests/bot_update_coverage_test.py b/tests/bot_update_coverage_test.py |
index 9b7715e4e4afe73a06f8434818d50e1c01f17509..f808c633ad7eab194f20e645d67a3bc0bd36e865 100755 |
--- a/tests/bot_update_coverage_test.py |
+++ b/tests/bot_update_coverage_test.py |
@@ -186,6 +186,10 @@ class BotUpdateUnittests(unittest.TestCase): |
delattr(bot_update, 'open') |
setattr(codecs, 'open', self.old_codecs_open) |
+ def overrideSetupForWindows(self): |
+ sys.platform = 'win' |
+ self.call.expect(('gclient.bat', 'sync')).returns(self.gclient) |
+ |
def testBasic(self): |
bot_update.ensure_checkout(**self.params) |
return self.call.records |
@@ -196,8 +200,7 @@ class BotUpdateUnittests(unittest.TestCase): |
return self.call.records |
def testBreakLocks(self): |
- sys.platform = 'win' |
- self.call.expect(('gclient.bat', 'sync')).returns(self.gclient) |
+ self.overrideSetupForWindows() |
bot_update.ensure_checkout(**self.params) |
gclient_sync_cmd = None |
for record in self.call.records: |
@@ -206,6 +209,20 @@ class BotUpdateUnittests(unittest.TestCase): |
gclient_sync_cmd = args |
self.assertTrue('--break_repo_locks' in gclient_sync_cmd) |
+ def testGitCheckoutBreaksLocks(self): |
+ self.overrideSetupForWindows() |
+ path = '/b/build/slave/foo/build/.git' |
+ lockfile = 'index.lock' |
+ removed = [] |
+ old_os_walk = os.walk |
+ old_os_remove = os.remove |
+ setattr(os, 'walk', lambda _: [(path, None, [lockfile])]) |
+ setattr(os, 'remove', removed.append) |
+ bot_update.ensure_checkout(**self.params) |
+ setattr(os, 'walk', old_os_walk) |
+ setattr(os, 'remove', old_os_remove) |
+ self.assertTrue(os.path.join(path, lockfile) in removed) |
+ |
if __name__ == '__main__': |
unittest.main() |