diff options
Diffstat (limited to 'llvm_tools/get_llvm_hash_unittest.py')
-rwxr-xr-x | llvm_tools/get_llvm_hash_unittest.py | 76 |
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') |