lkgm_manager_unittest: convert mox to mock
BUG=chromium:430770
TEST=`./cbuildbot/run_tests` passes
Change-Id: Iedff5651cd791f90d5e43c13f0842a28b56a9cec
Reviewed-on: https://chromium-review.googlesource.com/265356
Trybot-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/cbuildbot/lkgm_manager_unittest.py b/cbuildbot/lkgm_manager_unittest.py
index cf076be..b93b76e 100644
--- a/cbuildbot/lkgm_manager_unittest.py
+++ b/cbuildbot/lkgm_manager_unittest.py
@@ -2,13 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Unittests for lkgm_manager. Needs to be run inside of chroot for mox."""
+"""Unittests for lkgm_manager"""
from __future__ import print_function
import contextlib
import mock
-import mox
import os
import tempfile
from xml.dom import minidom
@@ -36,8 +35,6 @@
# pylint: disable=protected-access
-# TODO: Re-enable when converted from mox to mock.
-# pylint: disable=no-value-for-parameter
class LKGMCandidateInfoTest(cros_test_lib.TestCase):
@@ -113,11 +110,11 @@
yield f
-class LKGMManagerTest(cros_test_lib.MoxTempDirTestCase):
+class LKGMManagerTest(cros_test_lib.MockTempDirTestCase):
"""Tests for the BuildSpecs manager."""
def setUp(self):
- self.mox.StubOutWithMock(git, 'CreatePushBranch')
+ self.push_mock = self.PatchObject(git, 'CreatePushBranch')
self.source_repo = 'ssh://source/repo'
self.manifest_repo = 'ssh://manifest/repo'
@@ -156,16 +153,6 @@
"""Tests that we can create a new candidate and uprev an old rc."""
# Let's stub out other LKGMManager calls cause they're already
# unit tested.
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'CheckoutSourceCode')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'RefreshManifestCheckout')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'InitializeManifestVariables')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'HasCheckoutBeenBuilt')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'CreateManifest')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'PublishManifest')
my_info = lkgm_manager._LKGMCandidateInfo('1.2.3')
most_recent_candidate = lkgm_manager._LKGMCandidateInfo('1.2.3-rc12')
@@ -176,37 +163,35 @@
build_id = 59271
- lkgm_manager.LKGMManager.CheckoutSourceCode()
- lkgm_manager.LKGMManager.CreateManifest().AndReturn(new_manifest)
- lkgm_manager.LKGMManager.HasCheckoutBeenBuilt().AndReturn(False)
+ self.PatchObject(lkgm_manager.LKGMManager, 'CheckoutSourceCode')
+ self.PatchObject(lkgm_manager.LKGMManager, 'CreateManifest',
+ return_value=new_manifest)
+ self.PatchObject(lkgm_manager.LKGMManager, 'HasCheckoutBeenBuilt',
+ return_value=False)
# Do manifest refresh work.
- lkgm_manager.LKGMManager.RefreshManifestCheckout()
- git.CreatePushBranch(mox.IgnoreArg(), mox.IgnoreArg(), sync=False)
- lkgm_manager.LKGMManager.GetCurrentVersionInfo().AndReturn(my_info)
- lkgm_manager.LKGMManager.InitializeManifestVariables(my_info)
+ self.PatchObject(lkgm_manager.LKGMManager, 'RefreshManifestCheckout')
+ self.PatchObject(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo',
+ return_value=my_info)
+ init_mock = self.PatchObject(lkgm_manager.LKGMManager,
+ 'InitializeManifestVariables')
# Publish new candidate.
- lkgm_manager.LKGMManager.PublishManifest(new_manifest,
- new_candidate.VersionString(),
- build_id=build_id)
+ publish_mock = self.PatchObject(lkgm_manager.LKGMManager, 'PublishManifest')
- self.mox.ReplayAll()
candidate_path = self.manager.CreateNewCandidate(build_id=build_id)
self.assertEqual(candidate_path, self._GetPathToManifest(new_candidate))
- self.mox.VerifyAll()
+
+ publish_mock.assert_called_once_with(new_manifest,
+ new_candidate.VersionString(),
+ build_id=build_id)
+ init_mock.assert_called_once_with(my_info)
+ self.push_mock.assert_called_once_with(mock.ANY, mock.ANY, sync=False)
def testCreateFromManifest(self):
"""Tests that we can create a new candidate from another manifest."""
# Let's stub out other LKGMManager calls cause they're already
# unit tested.
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'RefreshManifestCheckout')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'InitializeManifestVariables')
- self.mox.StubOutWithMock(manifest_version, 'FilterManifest')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'PublishManifest')
version = '2010.0.0-rc7'
my_info = lkgm_manager._LKGMCandidateInfo('2010.0.0')
@@ -217,51 +202,49 @@
build_id = 20162
- manifest_version.FilterManifest(
- manifest,
- whitelisted_remotes=constants.EXTERNAL_REMOTES).AndReturn(new_manifest)
+ filter_mock = self.PatchObject(manifest_version, 'FilterManifest',
+ return_value=new_manifest)
# Do manifest refresh work.
- lkgm_manager.LKGMManager.GetCurrentVersionInfo().AndReturn(my_info)
- lkgm_manager.LKGMManager.RefreshManifestCheckout()
- lkgm_manager.LKGMManager.InitializeManifestVariables(my_info)
- git.CreatePushBranch(mox.IgnoreArg(), mox.IgnoreArg(), sync=False)
+ self.PatchObject(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo',
+ return_value=my_info)
+ self.PatchObject(lkgm_manager.LKGMManager, 'RefreshManifestCheckout')
+ init_mock = self.PatchObject(lkgm_manager.LKGMManager,
+ 'InitializeManifestVariables')
# Publish new candidate.
- lkgm_manager.LKGMManager.PublishManifest(new_manifest, version,
- build_id=build_id)
+ publish_mock = self.PatchObject(lkgm_manager.LKGMManager, 'PublishManifest')
- self.mox.ReplayAll()
candidate_path = self.manager.CreateFromManifest(manifest,
build_id=build_id)
self.assertEqual(candidate_path, self._GetPathToManifest(new_candidate))
self.assertEqual(self.manager.current_version, version)
- self.mox.VerifyAll()
+
+ filter_mock.assert_called_once_with(
+ manifest, whitelisted_remotes=constants.EXTERNAL_REMOTES)
+ publish_mock.assert_called_once_with(new_manifest, version,
+ build_id=build_id)
+ init_mock.assert_called_once_with(my_info)
+ self.push_mock.assert_called_once_with(mock.ANY, mock.ANY, sync=False)
def testCreateNewCandidateReturnNoneIfNoWorkToDo(self):
"""Tests that we return nothing if there is nothing to create."""
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'CheckoutSourceCode')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'HasCheckoutBeenBuilt')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'CreateManifest')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'RefreshManifestCheckout')
- self.mox.StubOutWithMock(lkgm_manager.LKGMManager,
- 'InitializeManifestVariables')
-
new_manifest = 'some_manifest'
my_info = lkgm_manager._LKGMCandidateInfo('1.2.3')
- lkgm_manager.LKGMManager.CheckoutSourceCode()
- lkgm_manager.LKGMManager.CreateManifest().AndReturn(new_manifest)
- lkgm_manager.LKGMManager.RefreshManifestCheckout()
- lkgm_manager.LKGMManager.GetCurrentVersionInfo().AndReturn(my_info)
- lkgm_manager.LKGMManager.InitializeManifestVariables(my_info)
- lkgm_manager.LKGMManager.HasCheckoutBeenBuilt().AndReturn(True)
+ self.PatchObject(lkgm_manager.LKGMManager, 'CheckoutSourceCode')
+ self.PatchObject(lkgm_manager.LKGMManager, 'CreateManifest',
+ return_value=new_manifest)
+ self.PatchObject(lkgm_manager.LKGMManager, 'RefreshManifestCheckout')
+ self.PatchObject(lkgm_manager.LKGMManager, 'GetCurrentVersionInfo',
+ return_value=my_info)
+ init_mock = self.PatchObject(lkgm_manager.LKGMManager,
+ 'InitializeManifestVariables')
+ self.PatchObject(lkgm_manager.LKGMManager, 'HasCheckoutBeenBuilt',
+ return_value=True)
- self.mox.ReplayAll()
candidate = self.manager.CreateNewCandidate()
self.assertEqual(candidate, None)
- self.mox.VerifyAll()
+ init_mock.assert_called_once_with(my_info)
def _CreateManifest(self):
"""Returns a created test manifest in tmpdir with its dir_pfx."""
@@ -311,37 +294,32 @@
Tested-by: Sammy Sosa <fake@fake.com>
"""
self.manager.incr_type = 'build'
- self.mox.StubOutWithMock(os.path, 'exists')
- self.mox.StubOutWithMock(cros_build_lib, 'RunCommand')
- self.mox.StubOutWithMock(cros_build_lib, 'PrintBuildbotLink')
+ self.PatchObject(cros_build_lib, 'RunCommand', side_effect=Exception())
+ exists_mock = self.PatchObject(os.path, 'exists', return_value=True)
+ link_mock = self.PatchObject(cros_build_lib, 'PrintBuildbotLink')
- fake_revision = '1234567890'
- fake_project_handler = self.mox.CreateMock(git.Manifest)
project = {
'name': 'fake/repo',
'path': 'fake/path',
- 'revision': fake_revision,
+ 'revision': '1234567890',
}
+ fake_project_handler = mock.Mock(spec=git.Manifest)
fake_project_handler.checkouts_by_path = {project['path']: project}
- fake_result = self.mox.CreateMock(cros_build_lib.CommandResult)
- fake_result.output = fake_git_log
+ self.PatchObject(git, 'Manifest', return_value=fake_project_handler)
- self.mox.StubOutWithMock(git, 'Manifest', use_mock_anything=True)
+ fake_result = cros_build_lib.CommandResult(output=fake_git_log)
+ self.PatchObject(git, 'RunGit', return_value=fake_result)
- git.Manifest(
- self.tmpmandir + '/LKGM/lkgm.xml').AndReturn(fake_project_handler)
- os.path.exists(mox.StrContains('fake/path')).AndReturn(True)
- cmd = ['log', '--pretty=full', '%s..HEAD' % fake_revision]
- git.RunGit(self.tmpdir + '/fake/path', cmd).AndReturn(fake_result)
- cros_build_lib.PrintBuildbotLink(
- 'CHUMP | repo | fake | 1234',
- 'https://chromium-review.googlesource.com/1234')
- cros_build_lib.PrintBuildbotLink(
- 'repo | fake | 1235',
- 'https://chromium-review.googlesource.com/1235')
- self.mox.ReplayAll()
self.manager._GenerateBlameListSinceLKGM()
- self.mox.VerifyAll()
+
+ exists_mock.assert_called_once_with(
+ os.path.join(self.tmpdir, project['path']))
+ link_mock.assert_has_calls([
+ mock.call('CHUMP | repo | fake | 1234',
+ 'https://chromium-review.googlesource.com/1234'),
+ mock.call('repo | fake | 1235',
+ 'https://chromium-review.googlesource.com/1235'),
+ ])
def testAddChromeVersionToManifest(self):
"""Tests whether we can write the chrome version to the manifest file."""