This commit is contained in:
+20
-26
@@ -32,37 +32,31 @@ def runtime(opencode: object, gitea: object) -> Runtime:
|
||||
)
|
||||
|
||||
|
||||
async def test_close_releases_provider_clients_in_order() -> None:
|
||||
events: list[str] = []
|
||||
value = runtime(ClosingClient("opencode", events), ClosingClient("gitea", events))
|
||||
|
||||
await value.close()
|
||||
|
||||
assert events == ["opencode", "gitea"]
|
||||
|
||||
|
||||
async def test_close_still_releases_gitea_when_opencode_close_fails() -> None:
|
||||
@pytest.mark.parametrize(
|
||||
("opencode_error", "gitea_error", "expected_error"),
|
||||
[
|
||||
(None, None, None),
|
||||
(RuntimeError("opencode close failed"), None, "opencode close failed"),
|
||||
(None, RuntimeError("gitea close failed"), "gitea close failed"),
|
||||
],
|
||||
ids=["success", "opencode-failure", "gitea-failure"],
|
||||
)
|
||||
async def test_close_releases_provider_clients_in_order(
|
||||
opencode_error: Exception | None,
|
||||
gitea_error: Exception | None,
|
||||
expected_error: str | None,
|
||||
) -> None:
|
||||
events: list[str] = []
|
||||
value = runtime(
|
||||
ClosingClient("opencode", events, RuntimeError("opencode close failed")),
|
||||
ClosingClient("gitea", events),
|
||||
ClosingClient("opencode", events, opencode_error),
|
||||
ClosingClient("gitea", events, gitea_error),
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError, match="opencode close failed"):
|
||||
await value.close()
|
||||
|
||||
assert events == ["opencode", "gitea"]
|
||||
|
||||
|
||||
async def test_close_propagates_gitea_close_failure_after_opencode_closes() -> None:
|
||||
events: list[str] = []
|
||||
value = runtime(
|
||||
ClosingClient("opencode", events),
|
||||
ClosingClient("gitea", events, RuntimeError("gitea close failed")),
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError, match="gitea close failed"):
|
||||
if expected_error is None:
|
||||
await value.close()
|
||||
else:
|
||||
with pytest.raises(RuntimeError, match=expected_error):
|
||||
await value.close()
|
||||
|
||||
assert events == ["opencode", "gitea"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user