diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-21 17:01:16 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-07-21 17:01:16 +0000 |
commit | d5a4803dc09a3d79d8b2670e5730403d54720b59 (patch) | |
tree | 73936aba47fe1dc71e9cc05af9747036e935608c /llvm_tools/upload_lexan_crashes_to_forcey_test.py | |
parent | b75f321fc8978b92ce3db6886ccb966768f0c7a8 (diff) | |
parent | 4e4201457e5f51a132101c611c79ccff9f713c8b (diff) | |
download | toolchain-utils-android12-mainline-sdkext-release.tar.gz |
Snap for 7570015 from 4e4201457e5f51a132101c611c79ccff9f713c8b to mainline-sdkext-releaseandroid-mainline-12.0.0_r81android-mainline-12.0.0_r37android-mainline-12.0.0_r17android-mainline-12.0.0_r109aml_sdk_311710000android12-mainline-sdkext-release
Change-Id: I198447028635075128207c752a9663ae34b7d32f
Diffstat (limited to 'llvm_tools/upload_lexan_crashes_to_forcey_test.py')
-rwxr-xr-x | llvm_tools/upload_lexan_crashes_to_forcey_test.py | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/llvm_tools/upload_lexan_crashes_to_forcey_test.py b/llvm_tools/upload_lexan_crashes_to_forcey_test.py new file mode 100755 index 00000000..3c9c0d4b --- /dev/null +++ b/llvm_tools/upload_lexan_crashes_to_forcey_test.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright 2020 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. + +"""Tests for upload_lexan_crashes_to_forcey.""" + +import datetime +import unittest +import unittest.mock + +import upload_lexan_crashes_to_forcey + + +class Test(unittest.TestCase): + """Tests for upload_lexan_crashes_to_forcey.""" + + def test_date_parsing_functions(self): + self.assertEqual( + datetime.date(2020, 2, 1), + upload_lexan_crashes_to_forcey.from_ymd('2020-02-01')) + + @unittest.mock.patch( + 'upload_lexan_crashes_to_forcey.test_cases_on_or_after', + return_value=( + ( + datetime.date(2020, 1, 1), + ('gs://test-case-1', 'gs://test-case-1.1'), + ), + (datetime.date(2020, 1, 2), ('gs://test-case-2',)), + (datetime.date(2020, 1, 1), ('gs://test-case-3',)), + (datetime.date(2020, 1, 4), ('gs://test-case-4',)), + )) + @unittest.mock.patch('upload_lexan_crashes_to_forcey.submit_test_case') + @unittest.mock.patch('upload_lexan_crashes_to_forcey.persist_state') + def test_new_test_case_submission_functions(self, persist_state_mock, + submit_test_case_mock, + test_cases_on_or_after_mock): + forcey_path = '/path/to/4c' + real_state_file_path = '/path/to/state/file' + earliest_date = datetime.date(2020, 1, 1) + + persist_state_calls = [] + + # Since the set this gets is mutated, we need to copy it somehow. + def persist_state_side_effect(test_cases_to_persist, state_file_path, + most_recent_date): + self.assertEqual(state_file_path, real_state_file_path) + persist_state_calls.append( + (sorted(test_cases_to_persist), most_recent_date)) + + persist_state_mock.side_effect = persist_state_side_effect + + upload_lexan_crashes_to_forcey.submit_new_test_cases( + last_seen_test_cases=( + 'gs://test-case-0', + 'gs://test-case-1', + ), + earliest_date_to_check=earliest_date, + forcey=forcey_path, + state_file_path=real_state_file_path, + ) + + test_cases_on_or_after_mock.assert_called_once_with(earliest_date) + self.assertEqual(submit_test_case_mock.call_args_list, [ + unittest.mock.call('gs://test-case-1.1', forcey_path), + unittest.mock.call('gs://test-case-2', forcey_path), + unittest.mock.call('gs://test-case-3', forcey_path), + unittest.mock.call('gs://test-case-4', forcey_path), + ]) + + self.assertEqual(persist_state_calls, [ + ( + ['gs://test-case-0', 'gs://test-case-1', 'gs://test-case-1.1'], + datetime.date(2020, 1, 1), + ), + ( + [ + 'gs://test-case-0', + 'gs://test-case-1', + 'gs://test-case-1.1', + 'gs://test-case-2', + ], + datetime.date(2020, 1, 2), + ), + ( + [ + 'gs://test-case-0', + 'gs://test-case-1', + 'gs://test-case-1.1', + 'gs://test-case-2', + 'gs://test-case-3', + ], + datetime.date(2020, 1, 2), + ), + ( + [ + 'gs://test-case-0', + 'gs://test-case-1', + 'gs://test-case-1.1', + 'gs://test-case-2', + 'gs://test-case-3', + 'gs://test-case-4', + ], + datetime.date(2020, 1, 4), + ), + ( + [ + 'gs://test-case-1', + 'gs://test-case-1.1', + 'gs://test-case-2', + 'gs://test-case-3', + 'gs://test-case-4', + ], + datetime.date(2020, 1, 4), + ), + ]) + + +if __name__ == '__main__': + unittest.main() |