Changeset View
Changeset View
Standalone View
Standalone View
contrib/buildbot/test/test_phabricator.py
#!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
# | # | ||||
# Copyright (c) 2020 The Bitcoin ABC developers | # Copyright (c) 2020 The Bitcoin ABC developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
from base64 import b64encode | from base64 import b64encode | ||||
import mock | import mock | ||||
import os | import os | ||||
import unittest | import unittest | ||||
from build import BuildStatus, BuildTarget | |||||
from phabricator_wrapper import BITCOIN_ABC_PROJECT_PHID, BITCOIN_ABC_REPO | from phabricator_wrapper import BITCOIN_ABC_PROJECT_PHID, BITCOIN_ABC_REPO | ||||
import test.mocks.phabricator | import test.mocks.phabricator | ||||
class PhabricatorTests(unittest.TestCase): | class PhabricatorTests(unittest.TestCase): | ||||
def setUp(self): | def setUp(self): | ||||
self.phab = test.mocks.phabricator.instance() | self.phab = test.mocks.phabricator.instance() | ||||
▲ Show 20 Lines • Show All 416 Lines • ▼ Show 20 Lines | def test_set_text_panel_content(self): | ||||
# Happy path | # Happy path | ||||
call_set_text_panel_content() | call_set_text_panel_content() | ||||
# Error | # Error | ||||
self.phab.dashboard.panel.edit.return_value["error"] = "You shall not pass !" | self.phab.dashboard.panel.edit.return_value["error"] = "You shall not pass !" | ||||
with self.assertRaisesRegex(AssertionError, "Failed to edit panel"): | with self.assertRaisesRegex(AssertionError, "Failed to edit panel"): | ||||
call_set_text_panel_content() | call_set_text_panel_content() | ||||
def test_update_build_target_status(self): | |||||
build_target = BuildTarget("PHID-HMBT-1234") | |||||
# With no builds queued, default to pass | |||||
self.phab.update_build_target_status(build_target) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="pass") | |||||
# Queue a build | |||||
build_target.queue_build("build-1", "build-name") | |||||
self.phab.update_build_target_status(build_target) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="work") | |||||
# Test various statuses | |||||
self.phab.update_build_target_status( | |||||
build_target, "build-1", BuildStatus.Queued) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="work") | |||||
self.phab.update_build_target_status( | |||||
build_target, "build-1", BuildStatus.Running) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="work") | |||||
self.phab.update_build_target_status( | |||||
build_target, "build-1", BuildStatus.Failure) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="fail") | |||||
self.phab.update_build_target_status( | |||||
build_target, "build-1", BuildStatus.Success) | |||||
self.phab.harbormaster.sendmessage.assert_called_with( | |||||
buildTargetPHID=build_target.phid, type="pass") | |||||
def test_get_object_token(self): | def test_get_object_token(self): | ||||
user_PHID = "PHID-USER-foobarbaz" | user_PHID = "PHID-USER-foobarbaz" | ||||
self.phab.user.whoami.return_value = { | self.phab.user.whoami.return_value = { | ||||
"phid": user_PHID, | "phid": user_PHID, | ||||
} | } | ||||
object_PHID = "PHID-DREV-abcdef" | object_PHID = "PHID-DREV-abcdef" | ||||
▲ Show 20 Lines • Show All 65 Lines • Show Last 20 Lines |