aboutsummaryrefslogtreecommitdiff
path: root/llvm_tools/get_llvm_hash_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'llvm_tools/get_llvm_hash_unittest.py')
-rwxr-xr-xllvm_tools/get_llvm_hash_unittest.py76
1 files changed, 11 insertions, 65 deletions
diff --git a/llvm_tools/get_llvm_hash_unittest.py b/llvm_tools/get_llvm_hash_unittest.py
index 895ee2b6..c828f433 100755
--- a/llvm_tools/get_llvm_hash_unittest.py
+++ b/llvm_tools/get_llvm_hash_unittest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -8,13 +8,13 @@
from __future__ import print_function
+import get_llvm_hash
import subprocess
import unittest
+import unittest.mock as mock
+import test_helpers
-import get_llvm_hash
from get_llvm_hash import LLVMHash
-import mock
-import test_helpers
# We grab protected stuff from get_llvm_hash. That's OK.
# pylint: disable=protected-access
@@ -55,71 +55,17 @@ class TestGetLLVMHash(unittest.TestCase):
with self.assertRaises(ValueError) as err:
LLVMHash().CloneLLVMRepo('/tmp/tmp1')
- self.assertIn('Failed to clone', err.exception.message)
- self.assertIn('some stderr', err.exception.message)
-
- @mock.patch.object(subprocess, 'check_output')
- def testParseCommitMessageWithoutAHashFails(self, check_output_mock):
- check_output_mock.return_value = ('[Test] Test sentence.\n\n'
- 'A change was made.\n\n'
- 'llvm-svn: 1000')
-
- # Verify the exception is raised when failed to find the commit hash.
- with self.assertRaises(ValueError) as err:
- LLVMHash()._ParseCommitMessages('/tmp/tmpTest',
- 'a13testhash2 This is a test', 100)
+ self.assertIn('Failed to clone', str(err.exception.args))
+ self.assertIn('some stderr', str(err.exception.args))
- self.assertEqual(err.exception.message, 'Could not find commit hash.')
- check_output_mock.assert_called_once()
-
- @mock.patch.object(subprocess, 'check_output')
- def testParseCommitMessageIgnoresSVNMarkersInReverts(self, check_output_mock):
- output_messages = [
- '[Test] Test sentence.\n\n'
- 'A change was made.\n\n'
- 'llvm-svn: 1001',
- '[Revert] Reverted commit.\n\n'
- 'This reverts r1000:\n\n'
- ' [Test2] Update.\n\n'
- ' This updates stuff.\n\n'
- ' llvm-svn: 1000\n\n'
- 'llvm-svn: 58',
- '[Revert] Reverted commit.\n\n'
- 'This reverts r958:\n\n'
- ' [Test2] Update.\n\n'
- ' This updates stuff.\n\n'
- ' llvm-svn: 958\n\n'
- 'llvm-svn: 1000',
- ]
-
- @test_helpers.CallCountsToMockFunctions
- def MultipleCommitMessages(call_count, *_args, **_kwargs):
- return output_messages[call_count]
-
- check_output_mock.side_effect = MultipleCommitMessages
-
- hash_vals = ('a13testhash2 [Test] Test sentence.\n'
- 'a13testhash3 [Revert] Reverted commit.\n'
- 'a13testhash4 [Revert] Reverted commit.')
+ @mock.patch.object(get_llvm_hash, 'GetGitHashFrom')
+ def testGetGitHashWorks(self, mock_get_git_hash):
+ mock_get_git_hash.return_value = 'a13testhash2'
self.assertEqual(
- LLVMHash()._ParseCommitMessages('/tmp/tmpTest', hash_vals, 1000),
- 'a13testhash4')
+ get_llvm_hash.GetGitHashFrom('/tmp/tmpTest', 100), 'a13testhash2')
- self.assertEqual(check_output_mock.call_count, 3)
-
- @mock.patch.object(subprocess, 'check_output')
- @mock.patch.object(LLVMHash, '_ParseCommitMessages')
- def testGetGitHashWorks(self, mock_return_hash_val, mock_check_output):
- mock_check_output.return_value = 'a13testhash2 [Test] Test sentence.'
- mock_return_hash_val.return_value = 'a13testhash2'
-
- self.assertEqual(LLVMHash().GetGitHashForVersion('/tmp/tmpTest', 100),
- 'a13testhash2')
-
- mock_return_hash_val.assert_called_once_with(
- '/tmp/tmpTest', 'a13testhash2 [Test] Test sentence.', 100)
- mock_check_output.assert_called_once()
+ mock_get_git_hash.assert_called_once()
@mock.patch.object(LLVMHash, 'GetLLVMHash')
@mock.patch.object(get_llvm_hash, 'GetGoogle3LLVMVersion')