Skip to content

Commit

Permalink
Merge pull request #25 from canonical/delete-reruns-after-submitting
Browse files Browse the repository at this point in the history
Delete test execution reruns requests after submitting them
  • Loading branch information
omar-selo authored May 10, 2024
2 parents 96fa20e + 31159ab commit d28b37c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ def __init__(self, jenkins_api_token: Optional[str] = None):
def run(self):
self._load_rerun_requests()
self._submit_rerun_requests()
self._delete_rerun_requests()

def _load_rerun_requests(self) -> None:
response = requests.get(reruns_link)
Expand All @@ -38,6 +39,13 @@ def _submit_rerun_requests(self) -> None:
for rerun_request in self.rerun_requests:
self._submit_rerun(rerun_request)

def _delete_rerun_requests(self) -> None:
test_execution_ids = {rr["test_execution_id"] for rr in self.rerun_requests}
if test_execution_ids:
requests.delete(
reruns_link, json={"test_execution_ids": list(test_execution_ids)}
)

def _submit_rerun(self, rerun_request: dict) -> None:
base_job_link = self._extract_base_job_link_from_ci_link(
rerun_request["ci_link"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,28 @@ def test_correctly_submits_deb_rerun_request(requests_mock: Mocker):
json=[{"test_execution_id": 1, "ci_link": ci_link, "family": "deb"}],
)

def is_data_valid(request) -> bool: # noqa: ANN001
def are_build_parameters_valid(request) -> bool: # noqa: ANN001
return request.json() == {"TESTPLAN": "full"}

rerun_link = f"{job_link}/buildWithParameters"
matcher = requests_mock.post(
jenkins_build_matcher = requests_mock.post(
rerun_link,
request_headers=jenkins_request_headers,
additional_matcher=is_data_valid,
additional_matcher=are_build_parameters_valid,
)

def is_delete_body_valid(request) -> bool:
return request.json() == {"test_execution_ids": [1]}

test_observer_delete_matcher = requests_mock.delete(
reruns_link,
additional_matcher=is_delete_body_valid,
)

execute()

assert matcher.called_once
assert jenkins_build_matcher.called_once
assert test_observer_delete_matcher.called_once


def test_correctly_submits_snap_rerun_request(requests_mock: Mocker):
Expand All @@ -51,14 +60,23 @@ def test_correctly_submits_snap_rerun_request(requests_mock: Mocker):
)

rerun_link = f"{job_link}/build"
matcher = requests_mock.post(
jenkins_build_matcher = requests_mock.post(
rerun_link,
request_headers=jenkins_request_headers,
)

def is_delete_body_valid(request) -> bool:
return request.json() == {"test_execution_ids": [1]}

test_observer_delete_matcher = requests_mock.delete(
reruns_link,
additional_matcher=is_delete_body_valid,
)

execute()

assert matcher.called_once
assert jenkins_build_matcher.called_once
assert test_observer_delete_matcher.called_once


def execute():
Expand Down

0 comments on commit d28b37c

Please sign in to comment.