Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: appengine/findit/waterfall/test/swarming_util_test.py

Issue 2526963002: [Findit] Implement retry within swarming_util.py when making server calls (Closed)
Patch Set: Addressing comments Rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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'])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698