| Index: cros_mark_as_stable_unittest.py
|
| diff --git a/cros_mark_as_stable_unittest.py b/cros_mark_as_stable_unittest.py
|
| index e7fd3317b20939426cc89d15b4851d7f43daae0f..4f9763e7f947039d7892d7c61ae0fd66fce440b4 100755
|
| --- a/cros_mark_as_stable_unittest.py
|
| +++ b/cros_mark_as_stable_unittest.py
|
| @@ -6,16 +6,45 @@
|
|
|
| """Unit tests for cros_mark_as_stable.py."""
|
|
|
| -
|
| +import fileinput
|
| import mox
|
| import os
|
| import sys
|
| import unittest
|
|
|
| -# Required to include '.' in the python path.
|
| -sys.path.append(os.path.dirname(__file__))
|
| import cros_mark_as_stable
|
|
|
| +class NonClassTests(mox.MoxTestBase):
|
| + def setUp(self):
|
| + mox.MoxTestBase.setUp(self)
|
| + self.mox.StubOutWithMock(cros_mark_as_stable, '_SimpleRunCommand')
|
| + self._branch = 'test_branch'
|
| + self._tracking_branch = 'cros/test'
|
| +
|
| + def testPushChange(self):
|
| + git_log = 'Marking test_one as stable\nMarking test_two as stable\n'
|
| + fake_description = 'Marking set of ebuilds as stable\n\n%s' % git_log
|
| + self.mox.StubOutWithMock(cros_mark_as_stable, '_CheckOnStabilizingBranch')
|
| + self.mox.StubOutWithMock(cros_mark_as_stable.GitBranch, 'CreateBranch')
|
| + self.mox.StubOutWithMock(cros_mark_as_stable.GitBranch, 'Exists')
|
| +
|
| + cros_mark_as_stable._CheckOnStabilizingBranch(self._branch).AndReturn(True)
|
| + cros_mark_as_stable.GitBranch.CreateBranch()
|
| + cros_mark_as_stable.GitBranch.Exists().AndReturn(True)
|
| + cros_mark_as_stable._SimpleRunCommand('git log --format=format:%s%n%n%b ' +
|
| + self._tracking_branch + '..').AndReturn(git_log)
|
| + cros_mark_as_stable._SimpleRunCommand('git remote update')
|
| + cros_mark_as_stable._SimpleRunCommand('git merge --squash %s' %
|
| + self._branch)
|
| + cros_mark_as_stable._SimpleRunCommand('git commit -m "%s"' %
|
| + fake_description)
|
| + cros_mark_as_stable._SimpleRunCommand('git config push.default tracking')
|
| + cros_mark_as_stable._SimpleRunCommand('git push')
|
| + self.mox.ReplayAll()
|
| + cros_mark_as_stable.PushChange(self._branch, self._tracking_branch)
|
| + self.mox.VerifyAll()
|
| +
|
| +
|
| class GitBranchTest(mox.MoxTestBase):
|
|
|
| def setUp(self):
|
| @@ -23,10 +52,11 @@ class GitBranchTest(mox.MoxTestBase):
|
| # Always stub RunCommmand out as we use it in every method.
|
| self.mox.StubOutWithMock(cros_mark_as_stable, '_SimpleRunCommand')
|
| self._branch = 'test_branch'
|
| + self._tracking_branch = 'cros/test'
|
|
|
| def testCreateBranchNoPrevious(self):
|
| # Test init with no previous branch existing.
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
| self.mox.StubOutWithMock(branch, 'Exists')
|
| self.mox.StubOutWithMock(branch, '_Checkout')
|
| branch.Exists().AndReturn(False)
|
| @@ -37,7 +67,7 @@ class GitBranchTest(mox.MoxTestBase):
|
|
|
| def testCreateBranchWithPrevious(self):
|
| # Test init with previous branch existing.
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
| self.mox.StubOutWithMock(branch, 'Exists')
|
| self.mox.StubOutWithMock(branch, 'Delete')
|
| self.mox.StubOutWithMock(branch, '_Checkout')
|
| @@ -51,35 +81,36 @@ class GitBranchTest(mox.MoxTestBase):
|
| def testCheckoutCreate(self):
|
| # Test init with no previous branch existing.
|
| cros_mark_as_stable._SimpleRunCommand(
|
| - 'git checkout -b %s cros/master' % self._branch)
|
| + 'git checkout -b %s %s' % (self._branch, self._tracking_branch))
|
| self.mox.ReplayAll()
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
| branch._Checkout(self._branch)
|
| self.mox.VerifyAll()
|
|
|
| def testCheckoutNoCreate(self):
|
| # Test init with previous branch existing.
|
| - cros_mark_as_stable._SimpleRunCommand('git checkout cros/master')
|
| + cros_mark_as_stable._SimpleRunCommand('git checkout %s' % (
|
| + self._tracking_branch))
|
| self.mox.ReplayAll()
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| - branch._Checkout('cros/master', False)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
| + branch._Checkout(self._tracking_branch, False)
|
| self.mox.VerifyAll()
|
|
|
| def testDelete(self):
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
| self.mox.StubOutWithMock(branch, '_Checkout')
|
| - branch._Checkout('cros/master', create=False)
|
| + branch._Checkout(self._tracking_branch, create=False)
|
| cros_mark_as_stable._SimpleRunCommand('git branch -D ' + self._branch)
|
| self.mox.ReplayAll()
|
| branch.Delete()
|
| self.mox.VerifyAll()
|
|
|
| def testExists(self):
|
| - branch = cros_mark_as_stable._GitBranch(self._branch)
|
| + branch = cros_mark_as_stable.GitBranch(self._branch, self._tracking_branch)
|
|
|
| # Test if branch exists that is created
|
| cros_mark_as_stable._SimpleRunCommand('git branch').AndReturn(
|
| - '%s %s' % (self._branch, 'cros/master'))
|
| + '%s %s' % (self._branch, self._tracking_branch))
|
| self.mox.ReplayAll()
|
| self.assertTrue(branch.Exists())
|
| self.mox.VerifyAll()
|
| @@ -90,45 +121,34 @@ class EBuildTest(mox.MoxTestBase):
|
| def setUp(self):
|
| mox.MoxTestBase.setUp(self)
|
|
|
| - def testInit(self):
|
| - self.mox.StubOutWithMock(cros_mark_as_stable._EBuild, '_ParseEBuildPath')
|
| -
|
| - ebuild_path = '/overlay/cat/test_package/test_package-0.0.1-r1.ebuild'
|
| - cros_mark_as_stable._EBuild._ParseEBuildPath(
|
| - ebuild_path).AndReturn(['/overlay/cat/test_package-0.0.1',
|
| - '/overlay/cat/test_package',
|
| - 1])
|
| - self.mox.StubOutWithMock(cros_mark_as_stable.fileinput, 'input')
|
| - mock_file = ['EAPI=2', 'CROS_WORKON_COMMIT=old_id',
|
| - 'KEYWORDS=\"~x86 ~arm\"', 'src_unpack(){}']
|
| - cros_mark_as_stable.fileinput.input(ebuild_path).AndReturn(mock_file)
|
| -
|
| - self.mox.ReplayAll()
|
| - ebuild = cros_mark_as_stable._EBuild(ebuild_path)
|
| - self.mox.VerifyAll()
|
| - self.assertEquals(ebuild.package, 'cat/test_package')
|
| - self.assertEquals(ebuild.ebuild_path, ebuild_path)
|
| - self.assertEquals(ebuild.ebuild_path_no_revision,
|
| - '/overlay/cat/test_package-0.0.1')
|
| - self.assertEquals(ebuild.ebuild_path_no_version,
|
| - '/overlay/cat/test_package')
|
| - self.assertEquals(ebuild.current_revision, 1)
|
| -
|
| def testParseEBuildPath(self):
|
| # Test with ebuild with revision number.
|
| - no_rev, no_version, revision = cros_mark_as_stable._EBuild._ParseEBuildPath(
|
| - '/path/test_package-0.0.1-r1.ebuild')
|
| - self.assertEquals(no_rev, '/path/test_package-0.0.1')
|
| - self.assertEquals(no_version, '/path/test_package')
|
| - self.assertEquals(revision, 1)
|
| + fake_ebuild_path = '/path/to/test_package/test_package-0.0.1-r1.ebuild'
|
| + self.mox.StubOutWithMock(fileinput, 'input')
|
| + fileinput.input(fake_ebuild_path).AndReturn('')
|
| + self.mox.ReplayAll()
|
| + fake_ebuild = cros_mark_as_stable.EBuild(fake_ebuild_path)
|
| + self.mox.VerifyAll()
|
| + self.assertEquals(fake_ebuild.ebuild_path_no_revision,
|
| + '/path/to/test_package/test_package-0.0.1')
|
| + self.assertEquals(fake_ebuild.ebuild_path_no_version,
|
| + '/path/to/test_package/test_package')
|
| + self.assertEquals(fake_ebuild.current_revision, 1)
|
|
|
| def testParseEBuildPathNoRevisionNumber(self):
|
| # Test with ebuild without revision number.
|
| - no_rev, no_version, revision = cros_mark_as_stable._EBuild._ParseEBuildPath(
|
| - '/path/test_package-9999.ebuild')
|
| - self.assertEquals(no_rev, '/path/test_package-0.0.1')
|
| - self.assertEquals(no_version, '/path/test_package')
|
| - self.assertEquals(revision, 0)
|
| + fake_ebuild_path = '/path/to/test_package/test_package-9999.ebuild'
|
| + self.mox.StubOutWithMock(fileinput, 'input')
|
| + fileinput.input(fake_ebuild_path).AndReturn('')
|
| + self.mox.ReplayAll()
|
| + fake_ebuild = cros_mark_as_stable.EBuild(fake_ebuild_path)
|
| + self.mox.VerifyAll()
|
| +
|
| + self.assertEquals(fake_ebuild.ebuild_path_no_revision,
|
| + '/path/to/test_package/test_package-9999')
|
| + self.assertEquals(fake_ebuild.ebuild_path_no_version,
|
| + '/path/to/test_package/test_package')
|
| + self.assertEquals(fake_ebuild.current_revision, 0)
|
|
|
|
|
| class EBuildStableMarkerTest(mox.MoxTestBase):
|
| @@ -138,7 +158,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
| self.mox.StubOutWithMock(cros_mark_as_stable, '_SimpleRunCommand')
|
| self.mox.StubOutWithMock(cros_mark_as_stable, 'RunCommand')
|
| self.mox.StubOutWithMock(os, 'unlink')
|
| - self.m_ebuild = self.mox.CreateMock(cros_mark_as_stable._EBuild)
|
| + self.m_ebuild = self.mox.CreateMock(cros_mark_as_stable.EBuild)
|
| self.m_ebuild.is_stable = True
|
| self.m_ebuild.package = 'test_package'
|
| self.m_ebuild.current_revision = 1
|
| @@ -147,7 +167,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
| self.m_ebuild.ebuild_path = '/path/test_package-0.0.1-r1.ebuild'
|
| self.revved_ebuild_path = '/path/test_package-0.0.1-r2.ebuild'
|
|
|
| - def testRevEBuild(self):
|
| + def testRevWorkOnEBuild(self):
|
| self.mox.StubOutWithMock(cros_mark_as_stable.fileinput, 'input')
|
| self.mox.StubOutWithMock(cros_mark_as_stable.os.path, 'exists')
|
| self.mox.StubOutWithMock(cros_mark_as_stable.shutil, 'copyfile')
|
| @@ -177,7 +197,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
|
|
| self.mox.ReplayAll()
|
| marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - marker.RevEBuild('my_id', redirect_file=m_file)
|
| + marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| self.mox.VerifyAll()
|
|
|
| def testRevUnchangedEBuild(self):
|
| @@ -209,7 +229,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
|
|
| self.mox.ReplayAll()
|
| marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - marker.RevEBuild('my_id', redirect_file=m_file)
|
| + marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| self.mox.VerifyAll()
|
|
|
| def testRevMissingEBuild(self):
|
| @@ -226,7 +246,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
|
|
| ebuild_9999 = self.m_ebuild.ebuild_path_no_version + '-9999.ebuild'
|
| cros_mark_as_stable.os.path.exists(ebuild_9999).AndReturn(False)
|
| - cros_mark_as_stable.Die("Missing 9999 ebuild: %s" % ebuild_9999)
|
| + cros_mark_as_stable.Die("Missing unstable ebuild: %s" % ebuild_9999)
|
| cros_mark_as_stable.shutil.copyfile(ebuild_9999, self.revved_ebuild_path)
|
| cros_mark_as_stable.fileinput.input(self.revved_ebuild_path,
|
| inplace=1).AndReturn(mock_file)
|
| @@ -244,7 +264,7 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
|
|
| self.mox.ReplayAll()
|
| marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - marker.RevEBuild('my_id', redirect_file=m_file)
|
| + marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| self.mox.VerifyAll()
|
|
|
|
|
| @@ -257,14 +277,6 @@ class EBuildStableMarkerTest(mox.MoxTestBase):
|
| marker.CommitChange(mock_message)
|
| self.mox.VerifyAll()
|
|
|
| - def testPushChange(self):
|
| - #cros_mark_as_stable._SimpleRunCommand('git push')
|
| - #self.mox.ReplayAll()
|
| - #marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - #marker.PushChange()
|
| - #self.mox.VerifyAll()
|
| - pass
|
| -
|
|
|
| class _Package(object):
|
| def __init__(self, package):
|
|
|