| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import collections | 5 import collections |
| 6 import json | 6 import json |
| 7 import mock | 7 import mock |
| 8 import os | 8 import os |
| 9 import urllib | 9 import urllib |
| 10 import zlib | 10 import zlib |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 { | 375 { |
| 376 'digest': 'isolatedhashunittests', | 376 'digest': 'isolatedhashunittests', |
| 377 'namespace': 'default-gzip', | 377 'namespace': 'default-gzip', |
| 378 'isolatedserver': waterfall_config.GetSwarmingSettings().get( | 378 'isolatedserver': waterfall_config.GetSwarmingSettings().get( |
| 379 'isolated_server') | 379 'isolated_server') |
| 380 }, | 380 }, |
| 381 { | 381 { |
| 382 'digest': 'isolatedhashunittests1', | 382 'digest': 'isolatedhashunittests1', |
| 383 'namespace': 'default-gzip', | 383 'namespace': 'default-gzip', |
| 384 'isolatedserver': waterfall_config.GetSwarmingSettings().get( | 384 'isolatedserver': waterfall_config.GetSwarmingSettings().get( |
| 385 'isolated_server') | 385 'isolated_server') |
| 386 } | 386 } |
| 387 ] | 387 ] |
| 388 self.assertEqual(sorted(expected_data), sorted(data)) | 388 self.assertEqual(sorted(expected_data), sorted(data)) |
| 389 | 389 |
| 390 def testGetIsolatedDataForStepFailed(self): | 390 def testGetIsolatedDataForStepFailed(self): |
| 391 master_name = 'm' | 391 master_name = 'm' |
| 392 builder_name = 'download_failed' | 392 builder_name = 'download_failed' |
| 393 build_number = 223 | 393 build_number = 223 |
| 394 step_name = 's1' | 394 step_name = 's1' |
| 395 | 395 |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 content, error = swarming_util._SendRequestToServer('url', HttpClient()) | 655 content, error = swarming_util._SendRequestToServer('url', HttpClient()) |
| 656 self.assertIsNone(content) | 656 self.assertIsNone(content) |
| 657 self.assertEqual( | 657 self.assertEqual( |
| 658 error['code'], swarming_util.URLFETCH_DEADLINE_EXCEEDED_ERROR) | 658 error['code'], swarming_util.URLFETCH_DEADLINE_EXCEEDED_ERROR) |
| 659 | 659 |
| 660 @mock.patch.object(RetryHttpClient, 'Get', side_effect=DownloadError()) | 660 @mock.patch.object(RetryHttpClient, 'Get', side_effect=DownloadError()) |
| 661 def testSendRequestToServerDownloadError(self, _): | 661 def testSendRequestToServerDownloadError(self, _): |
| 662 content, error = swarming_util._SendRequestToServer('url', HttpClient()) | 662 content, error = swarming_util._SendRequestToServer('url', HttpClient()) |
| 663 self.assertIsNone(content) | 663 self.assertIsNone(content) |
| 664 self.assertEqual(error['code'], swarming_util.URLFETCH_DOWNLOAD_ERROR) | 664 self.assertEqual(error['code'], swarming_util.URLFETCH_DOWNLOAD_ERROR) |
| 665 |
| 666 def testGetBackoffSeconds(self): |
| 667 self.assertEqual(1, swarming_util._GetBackoffSeconds(1, 1, 1)) |
| 668 self.assertEqual(2, swarming_util._GetBackoffSeconds(1, 2, 100)) |
| 669 self.assertEqual(100, swarming_util._GetBackoffSeconds(1, 8, 100)) |
| 670 |
| 671 @mock.patch.object( |
| 672 RetryHttpClient, 'Get', side_effect=ConnectionClosedError()) |
| 673 def testSendRequestToServerRetryTimeout(self, _): |
| 674 override_swarming_settings = { |
| 675 'should_retry_server': True, |
| 676 'server_retry_timeout_hours': -1 |
| 677 } |
| 678 self.UpdateUnitTestConfigSettings( |
| 679 'swarming_settings', override_swarming_settings) |
| 680 content, error = swarming_util._SendRequestToServer('url', HttpClient()) |
| 681 self.assertIsNone(content) |
| 682 self.assertEqual( |
| 683 error['code'], swarming_util.URLFETCH_CONNECTION_CLOSED_ERROR) |
| 684 self.assertTrue(error['retry_timeout']) |
| OLD | NEW |