|
32 | 32 | from apis.taskcluster import TaskclusterProvider |
33 | 33 | from apis.phabricator import PhabricatorProvider |
34 | 34 |
|
35 | | -from tests.functionality_utilities import SHARED_COMMAND_MAPPINGS, TRY_OUTPUT, TRY_LOCKED_OUTPUT, CONDUIT_EDIT_OUTPUT, MockedBugzillaProvider, treeherder_response |
| 35 | +from tests.functionality_utilities import SHARED_COMMAND_MAPPINGS, TRY_OUTPUT, TRY_LOCKED_OUTPUT, ARC_OUTPUT, CONDUIT_EDIT_OUTPUT, MockedBugzillaProvider, treeherder_response |
36 | 36 | from tests.mock_commandprovider import TestCommandProvider |
37 | 37 | from tests.mock_libraryprovider import MockLibraryProvider |
38 | 38 | from tests.mock_treeherder_server import MockTreeherderServerFactory, TYPE_HEALTH |
@@ -662,7 +662,7 @@ def treeherder(request_type, fullpath): |
662 | 662 |
|
663 | 663 | def try_submit(cmd): |
664 | 664 | nonlocal try_fails |
665 | | - if try_fails == 0: |
| 665 | + if try_fails < 2: |
666 | 666 | try_fails += 1 |
667 | 667 | raise Exception("No worky!") |
668 | 668 | if "./mach try auto" in cmd: |
@@ -697,6 +697,37 @@ def try_submit(cmd): |
697 | 697 | finally: |
698 | 698 | self._cleanup(u, expected_values) |
699 | 699 |
|
| 700 | + # Fail the first time, then work. |
| 701 | + @logEntryExitHeaderLine |
| 702 | + def testPhabRetryFunctionality(self): |
| 703 | + try_fails = 0 |
| 704 | + |
| 705 | + def phab_submit(cmd): |
| 706 | + nonlocal try_fails |
| 707 | + if try_fails == 0: |
| 708 | + try_fails += 1 |
| 709 | + raise Exception("No worky!") |
| 710 | + if "--trace" not in cmd: |
| 711 | + raise Exception("Expected to see --trace in the phabricator command") |
| 712 | + return ARC_OUTPUT % (83000 + 50, 83000 + 50) |
| 713 | + |
| 714 | + library_filter = 'dav1d' |
| 715 | + (u, expected_values, _check_jobs) = self._setup( |
| 716 | + library_filter, |
| 717 | + lambda b: ["try_rev|2021-02-09 15:30:04 -0500|2021-02-12 17:40:01 +0000"], |
| 718 | + lambda: 50, # get_filed_bug_id_func, |
| 719 | + lambda b: {}, # filed_bug_ids_func |
| 720 | + AssertFalse, # treeherder_response |
| 721 | + command_callbacks={'phab_submit': phab_submit} |
| 722 | + ) |
| 723 | + try: |
| 724 | + # Run it |
| 725 | + u.run(library_filter=library_filter) |
| 726 | + # Check that we created the job successfully |
| 727 | + _check_jobs(JOBSTATUS.AWAITING_SECOND_PLATFORMS_TRY_RESULTS, JOBOUTCOME.PENDING) |
| 728 | + finally: |
| 729 | + self._cleanup(u, expected_values) |
| 730 | + |
700 | 731 | @logEntryExitHeaderLine |
701 | 732 | def testAllNewFuzzyPathJobs(self): |
702 | 733 | @treeherder_response |
|
0 commit comments