test_runner_test.py (3435B)
1 #!/usr/bin/env vpython3 2 # 3 # Copyright 2024 The Chromium Authors 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 import unittest 8 9 from unittest import mock 10 11 import test_runner 12 13 14 class UploadTestScriptRecordsTest(unittest.TestCase): 15 16 def setUp(self): 17 self.sink_client = mock.MagicMock() 18 self.exc_recorder = mock.MagicMock() 19 self.mm_recorder = mock.MagicMock() 20 21 def testNoRecords(self): 22 self.exc_recorder.size.return_value = 0 23 self.mm_recorder.size.return_value = 0 24 test_runner.UploadTestScriptRecords(self.sink_client, self.exc_recorder, 25 self.mm_recorder) 26 self.exc_recorder.to_dict.assert_not_called() 27 self.mm_recorder.to_dict.assert_not_called() 28 self.sink_client.UpdateInvocationExtendedProperties.assert_not_called() 29 30 def testUploadSuccess(self): 31 test_runner.UploadTestScriptRecords(self.sink_client, self.exc_recorder, 32 self.mm_recorder) 33 self.exc_recorder.to_dict.assert_called_once() 34 self.mm_recorder.to_dict.assert_called_once() 35 self.sink_client.UpdateInvocationExtendedProperties.assert_called_once() 36 self.exc_recorder.clear.assert_called_once() 37 self.mm_recorder.clear.assert_called_once() 38 39 def testUploadSuccessWithClearStacktrace(self): 40 self.sink_client.UpdateInvocationExtendedProperties.side_effect = [ 41 Exception("Error 1"), None 42 ] 43 test_runner.UploadTestScriptRecords(self.sink_client, self.exc_recorder, 44 self.mm_recorder) 45 self.assertEqual(self.exc_recorder.to_dict.call_count, 2) 46 self.assertEqual(self.mm_recorder.to_dict.call_count, 2) 47 self.assertEqual( 48 self.sink_client.UpdateInvocationExtendedProperties.call_count, 2) 49 self.exc_recorder.clear_stacktrace.assert_called_once() 50 self.exc_recorder.clear.assert_called_once() 51 self.mm_recorder.clear.assert_called_once() 52 53 def testUploadSuccessWithClearRecords(self): 54 self.sink_client.UpdateInvocationExtendedProperties.side_effect = [ 55 Exception("Error 1"), Exception("Error 2"), None 56 ] 57 test_runner.UploadTestScriptRecords(self.sink_client, self.exc_recorder, 58 self.mm_recorder) 59 self.assertEqual(self.exc_recorder.to_dict.call_count, 3) 60 self.assertEqual(self.mm_recorder.to_dict.call_count, 3) 61 self.assertEqual( 62 self.sink_client.UpdateInvocationExtendedProperties.call_count, 3) 63 self.exc_recorder.clear_stacktrace.assert_called_once() 64 self.assertEqual(self.exc_recorder.clear.call_count, 2) 65 self.exc_recorder.register.assert_called_once() 66 self.mm_recorder.clear.assert_called_once() 67 68 def testUploadFailure(self): 69 self.sink_client.UpdateInvocationExtendedProperties.side_effect = ( 70 Exception("Error")) 71 test_runner.UploadTestScriptRecords(self.sink_client, self.exc_recorder, 72 self.mm_recorder) 73 self.assertEqual(self.exc_recorder.to_dict.call_count, 3) 74 self.assertEqual(self.mm_recorder.to_dict.call_count, 3) 75 self.assertEqual( 76 self.sink_client.UpdateInvocationExtendedProperties.call_count, 3) 77 self.assertEqual(self.exc_recorder.clear.call_count, 2) 78 self.exc_recorder.clear_stacktrace.assert_called_once() 79 self.exc_recorder.register.assert_called_once() 80 self.mm_recorder.clear.assert_called_once()