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() |