| Index: cros_mark_as_stable_unittest.py
|
| diff --git a/cros_mark_as_stable_unittest.py b/cros_mark_as_stable_unittest.py
|
| deleted file mode 100755
|
| index 45fcdf046ac74890bdb5321be947f88c8cca5fa5..0000000000000000000000000000000000000000
|
| --- a/cros_mark_as_stable_unittest.py
|
| +++ /dev/null
|
| @@ -1,313 +0,0 @@
|
| -#!/usr/bin/python
|
| -
|
| -# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -"""Unit tests for cros_mark_as_stable.py."""
|
| -
|
| -import fileinput
|
| -import mox
|
| -import os
|
| -import sys
|
| -import unittest
|
| -
|
| -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, '_DoWeHaveLocalCommits')
|
| - self.mox.StubOutWithMock(cros_mark_as_stable.GitBranch, 'CreateBranch')
|
| - self.mox.StubOutWithMock(cros_mark_as_stable.GitBranch, 'Exists')
|
| -
|
| - cros_mark_as_stable._DoWeHaveLocalCommits(
|
| - self._branch, self._tracking_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('repo sync .')
|
| - 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):
|
| - mox.MoxTestBase.setUp(self)
|
| - # Always stub RunCommmand out as we use it in every method.
|
| - self.mox.StubOutWithMock(cros_mark_as_stable, '_SimpleRunCommand')
|
| - self._branch = self.mox.CreateMock(cros_mark_as_stable.GitBranch)
|
| - self._branch_name = 'test_branch'
|
| - self._branch.branch_name = self._branch_name
|
| - self._tracking_branch = 'cros/test'
|
| - self._branch.tracking_branch = self._tracking_branch
|
| -
|
| - def testCheckoutCreate(self):
|
| - # Test init with no previous branch existing.
|
| - self._branch.Exists().AndReturn(False)
|
| - cros_mark_as_stable._SimpleRunCommand(
|
| - 'git checkout -b %s %s' % (self._branch_name, self._tracking_branch))
|
| - self.mox.ReplayAll()
|
| - cros_mark_as_stable.GitBranch.Checkout(self._branch)
|
| - self.mox.VerifyAll()
|
| -
|
| - def testCheckoutNoCreate(self):
|
| - # Test init with previous branch existing.
|
| - self._branch.Exists().AndReturn(True)
|
| - cros_mark_as_stable._SimpleRunCommand('git checkout %s' % (
|
| - self._branch_name))
|
| - self.mox.ReplayAll()
|
| - cros_mark_as_stable.GitBranch.Checkout(self._branch)
|
| - self.mox.VerifyAll()
|
| -
|
| - def testDelete(self):
|
| - self.mox.StubOutWithMock(cros_mark_as_stable.GitBranch, 'Checkout')
|
| - branch = cros_mark_as_stable.GitBranch(self._branch_name,
|
| - self._tracking_branch)
|
| - cros_mark_as_stable.GitBranch.Checkout(mox.IgnoreArg())
|
| - cros_mark_as_stable._SimpleRunCommand('git branch -D ' + self._branch_name)
|
| - self.mox.ReplayAll()
|
| - branch.Delete()
|
| - self.mox.VerifyAll()
|
| -
|
| - def testExists(self):
|
| - branch = cros_mark_as_stable.GitBranch(self._branch_name,
|
| - self._tracking_branch)
|
| - # Test if branch exists that is created
|
| - cros_mark_as_stable._SimpleRunCommand('git branch').AndReturn(
|
| - '%s' % self._branch_name)
|
| - self.mox.ReplayAll()
|
| - self.assertTrue(branch.Exists())
|
| - self.mox.VerifyAll()
|
| -
|
| -
|
| -class EBuildTest(mox.MoxTestBase):
|
| -
|
| - def setUp(self):
|
| - mox.MoxTestBase.setUp(self)
|
| -
|
| - def testParseEBuildPath(self):
|
| - # Test with ebuild with revision number.
|
| - 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.version_no_rev, '0.0.1')
|
| - 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.
|
| - 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.version_no_rev, '9999')
|
| - 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):
|
| -
|
| - def setUp(self):
|
| - mox.MoxTestBase.setUp(self)
|
| - 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.is_stable = True
|
| - self.m_ebuild.package = 'test_package/test_package'
|
| - self.m_ebuild.version_no_rev = '0.0.1'
|
| - self.m_ebuild.current_revision = 1
|
| - self.m_ebuild.ebuild_path_no_revision = '/path/test_package-0.0.1'
|
| - self.m_ebuild.ebuild_path_no_version = '/path/test_package'
|
| - 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'
|
| - self.unstable_ebuild_path = '/path/test_package-9999.ebuild'
|
| -
|
| - 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')
|
| - m_file = self.mox.CreateMock(file)
|
| -
|
| - # Prepare mock fileinput. This tests to make sure both the commit id
|
| - # and keywords are changed correctly.
|
| - mock_file = ['EAPI=2', 'CROS_WORKON_COMMIT=old_id',
|
| - 'KEYWORDS=\"~x86 ~arm\"', 'src_unpack(){}']
|
| -
|
| - ebuild_9999 = self.m_ebuild.ebuild_path_no_version + '-9999.ebuild'
|
| - cros_mark_as_stable.os.path.exists(ebuild_9999).AndReturn(True)
|
| - 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)
|
| - m_file.write('EAPI=2')
|
| - m_file.write('CROS_WORKON_COMMIT="my_id"\n')
|
| - m_file.write('KEYWORDS="x86 arm"')
|
| - m_file.write('src_unpack(){}')
|
| - diff_cmd = ['diff', '-Bu', self.m_ebuild.ebuild_path,
|
| - self.revved_ebuild_path]
|
| - cros_mark_as_stable.RunCommand(diff_cmd, exit_code=True,
|
| - print_cmd=False, redirect_stderr=True,
|
| - redirect_stdout=True).AndReturn(1)
|
| - cros_mark_as_stable._SimpleRunCommand('git add ' + self.revved_ebuild_path)
|
| - cros_mark_as_stable._SimpleRunCommand('git rm ' + self.m_ebuild.ebuild_path)
|
| -
|
| - self.mox.ReplayAll()
|
| - marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - result = marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| - self.mox.VerifyAll()
|
| - self.assertEqual(result, 'test_package/test_package-0.0.1-r2')
|
| -
|
| - def testRevUnchangedEBuild(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')
|
| - m_file = self.mox.CreateMock(file)
|
| -
|
| - # Prepare mock fileinput. This tests to make sure both the commit id
|
| - # and keywords are changed correctly.
|
| - mock_file = ['EAPI=2', 'CROS_WORKON_COMMIT=old_id',
|
| - 'KEYWORDS=\"~x86 ~arm\"', 'src_unpack(){}']
|
| -
|
| - ebuild_9999 = self.m_ebuild.ebuild_path_no_version + '-9999.ebuild'
|
| - cros_mark_as_stable.os.path.exists(ebuild_9999).AndReturn(True)
|
| - 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)
|
| - m_file.write('EAPI=2')
|
| - m_file.write('CROS_WORKON_COMMIT="my_id"\n')
|
| - m_file.write('KEYWORDS="x86 arm"')
|
| - m_file.write('src_unpack(){}')
|
| - diff_cmd = ['diff', '-Bu', self.m_ebuild.ebuild_path,
|
| - self.revved_ebuild_path]
|
| - cros_mark_as_stable.RunCommand(diff_cmd, exit_code=True,
|
| - print_cmd=False, redirect_stderr=True,
|
| - redirect_stdout=True).AndReturn(0)
|
| - cros_mark_as_stable.os.unlink(self.revved_ebuild_path)
|
| -
|
| - self.mox.ReplayAll()
|
| - marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - result = marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| - self.mox.VerifyAll()
|
| - self.assertEqual(result, None)
|
| -
|
| - def testRevMissingEBuild(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')
|
| - self.mox.StubOutWithMock(cros_mark_as_stable, 'Die')
|
| - m_file = self.mox.CreateMock(file)
|
| -
|
| - revved_ebuild_path = self.m_ebuild.ebuild_path
|
| - self.m_ebuild.ebuild_path = self.unstable_ebuild_path
|
| - self.m_ebuild.is_stable = False
|
| - self.m_ebuild.current_revision = 0
|
| -
|
| - # Prepare mock fileinput. This tests to make sure both the commit id
|
| - # and keywords are changed correctly.
|
| - mock_file = ['EAPI=2', 'CROS_WORKON_COMMIT=old_id',
|
| - 'KEYWORDS=\"~x86 ~arm\"', 'src_unpack(){}']
|
| -
|
| - 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 unstable ebuild: %s" % ebuild_9999)
|
| - cros_mark_as_stable.shutil.copyfile(ebuild_9999, revved_ebuild_path)
|
| - cros_mark_as_stable.fileinput.input(revved_ebuild_path,
|
| - inplace=1).AndReturn(mock_file)
|
| - m_file.write('EAPI=2')
|
| - m_file.write('CROS_WORKON_COMMIT="my_id"\n')
|
| - m_file.write('KEYWORDS="x86 arm"')
|
| - m_file.write('src_unpack(){}')
|
| - diff_cmd = ['diff', '-Bu', self.unstable_ebuild_path, revved_ebuild_path]
|
| - cros_mark_as_stable.RunCommand(diff_cmd, exit_code=True,
|
| - print_cmd=False, redirect_stderr=True,
|
| - redirect_stdout=True).AndReturn(1)
|
| - cros_mark_as_stable._SimpleRunCommand('git add ' + revved_ebuild_path)
|
| -
|
| - self.mox.ReplayAll()
|
| - marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - result = marker.RevWorkOnEBuild('my_id', redirect_file=m_file)
|
| - self.mox.VerifyAll()
|
| - self.assertEqual(result, 'test_package/test_package-0.0.1-r1')
|
| -
|
| -
|
| - def testCommitChange(self):
|
| - mock_message = 'Commit me'
|
| - cros_mark_as_stable._SimpleRunCommand(
|
| - 'git commit -am "%s"' % mock_message)
|
| - self.mox.ReplayAll()
|
| - marker = cros_mark_as_stable.EBuildStableMarker(self.m_ebuild)
|
| - marker.CommitChange(mock_message)
|
| - self.mox.VerifyAll()
|
| -
|
| -
|
| -class _Package(object):
|
| - def __init__(self, package):
|
| - self.package = package
|
| -
|
| -
|
| -class BuildEBuildDictionaryTest(mox.MoxTestBase):
|
| -
|
| - def setUp(self):
|
| - mox.MoxTestBase.setUp(self)
|
| - self.mox.StubOutWithMock(cros_mark_as_stable.os, 'walk')
|
| - self.mox.StubOutWithMock(cros_mark_as_stable, 'RunCommand')
|
| - self.package = 'chromeos-base/test_package'
|
| - self.root = '/overlay/chromeos-base/test_package'
|
| - self.package_path = self.root + '/test_package-0.0.1.ebuild'
|
| - paths = [[self.root, [], []]]
|
| - cros_mark_as_stable.os.walk("/overlay").AndReturn(paths)
|
| - self.mox.StubOutWithMock(cros_mark_as_stable, '_FindUprevCandidates')
|
| -
|
| -
|
| - def testWantedPackage(self):
|
| - overlays = {"/overlay": []}
|
| - package = _Package(self.package)
|
| - cros_mark_as_stable._FindUprevCandidates([]).AndReturn(package)
|
| - self.mox.ReplayAll()
|
| - cros_mark_as_stable._BuildEBuildDictionary(overlays, False, [self.package])
|
| - self.mox.VerifyAll()
|
| - self.assertEquals(len(overlays), 1)
|
| - self.assertEquals(overlays["/overlay"], [package])
|
| -
|
| - def testUnwantedPackage(self):
|
| - overlays = {"/overlay": []}
|
| - package = _Package(self.package)
|
| - cros_mark_as_stable._FindUprevCandidates([]).AndReturn(package)
|
| - self.mox.ReplayAll()
|
| - cros_mark_as_stable._BuildEBuildDictionary(overlays, False, [])
|
| - self.assertEquals(len(overlays), 1)
|
| - self.assertEquals(overlays["/overlay"], [])
|
| - self.mox.VerifyAll()
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
|
|