Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1134)

Unified Diff: native_client_sdk/src/build_tools/tests/build_version_test.py

Issue 524503002: [NaCl SDK] Fix a bug in build_version.ChromeVersion() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « native_client_sdk/src/build_tools/build_version.py ('k') | native_client_sdk/src/test_all.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: native_client_sdk/src/build_tools/tests/build_version_test.py
diff --git a/native_client_sdk/src/build_tools/tests/build_version_test.py b/native_client_sdk/src/build_tools/tests/build_version_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..f8f60a26ce359d3576b04c2bca832fdf2f032210
--- /dev/null
+++ b/native_client_sdk/src/build_tools/tests/build_version_test.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+# Copyright (c) 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os
+import sys
+import collections
+import unittest
+
+SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
+BUILD_TOOLS_DIR = os.path.dirname(SCRIPT_DIR)
+CHROME_SRC = os.path.dirname(os.path.dirname(os.path.dirname(BUILD_TOOLS_DIR)))
+MOCK_DIR = os.path.join(CHROME_SRC, "third_party", "pymock")
+
+# For the mock library
+sys.path.append(MOCK_DIR)
+import mock
+
+sys.path.append(BUILD_TOOLS_DIR)
+import build_version
+
+ProcInfo = collections.namedtuple('ProcInfo', ['returncode', 'output'])
+
+class TestCase(unittest.TestCase):
+ def setUp(self):
+ self.fetch_svn = mock.patch('lastchange.FetchSVNRevision').start()
+ self.fetch_git_svn = mock.patch('lastchange.FetchGitSVNRevision').start()
+ self.run_git = mock.patch('lastchange.RunGitCommand').start()
+
+ self.fetch_svn.return_value = None
+ self.fetch_git_svn.return_value = None
+
+ def tearDown(self):
+ mock.patch.stopall()
+
+ def mockGitCommand(self, *args):
+ side_effects = []
+ for proc_info in args:
+ mock_proc = mock.MagicMock()
+ mock_proc.returncode = proc_info.returncode
+ comm_result = mock_proc.MagicMock()
+ comm_result.__getitem__.return_value = proc_info.output
+ mock_proc.communicate.return_value = comm_result
+ side_effects.append(mock_proc)
+
+ self.run_git.side_effect = side_effects
+
+ def mockDefaultGitCommand(self):
+ output = """\
+6a8b61d6be4656e682eba005a1dd7f129789129c
+[NaCl SDK] Update build_sdk.py to display Cr-Commit-Position in README.
+
+BUG=none
+R=bradnelson@google.com, bradnelson@chromium.org
+
+Review URL: https://codereview.chromium.org/495423010
+
+Cr-Commit-Position: refs/heads/master@{#292480}"""
+ self.mockGitCommand(ProcInfo(0, output))
+
+ def mockDepthTwoGitCommand(self):
+ output0 = """\
+ae4b444a0aa09a1fa73e59b180d7d957b9a36bf2
+."""
+
+ output1 = """\
+6a8b61d6be4656e682eba005a1dd7f129789129c
+[NaCl SDK] Update build_sdk.py to display Cr-Commit-Position in README.
+
+BUG=none
+R=bradnelson@google.com, bradnelson@chromium.org
+
+Review URL: https://codereview.chromium.org/495423010
+
+Cr-Commit-Position: refs/heads/master@{#292480}"""
+ self.mockGitCommand(ProcInfo(0, output0), ProcInfo(0, output1))
+
+
+ def assertGitShowCalled(self, depth=0):
+ cmd = ['show', '-s', '--format=%H%n%B', 'HEAD~%d' % depth]
+ self.run_git.assert_called_with(None, cmd)
+
+ def testChromeVersion(self):
+ self.mockDefaultGitCommand()
+ result = build_version.ChromeVersion()
+ self.assertGitShowCalled()
+ self.assertEqual(result, 'trunk.292480')
+
+ def testChromeRevision(self):
+ self.mockDefaultGitCommand()
+ result = build_version.ChromeRevision()
+ self.assertGitShowCalled()
+ self.assertEqual(result, '292480')
+
+ def testChromeCommitPosition(self):
+ self.mockDefaultGitCommand()
+ result = build_version.ChromeCommitPosition()
+ self.assertGitShowCalled()
+ self.assertEqual(
+ result,
+ '6a8b61d6be4656e682eba005a1dd7f129789129c-refs/heads/master@{#292480}')
+
+ def testChromeCommitPositionDepthTwo(self):
+ self.mockDepthTwoGitCommand()
+ result = build_version.ChromeCommitPosition()
+ self.assertEqual(
+ result,
+ '6a8b61d6be4656e682eba005a1dd7f129789129c-refs/heads/master@{#292480}')
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « native_client_sdk/src/build_tools/build_version.py ('k') | native_client_sdk/src/test_all.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698