tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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()