test: gate offline release journey deterministically
This commit is contained in:
parent
3c5c58fc38
commit
c86a63c54b
|
|
@ -22,6 +22,7 @@ class FakeGiteaServer(ThreadingHTTPServer):
|
||||||
def __init__(self, address: tuple[str, int]):
|
def __init__(self, address: tuple[str, int]):
|
||||||
super().__init__(address, FakeGiteaHandler)
|
super().__init__(address, FakeGiteaHandler)
|
||||||
self.created_issues: list[dict] = []
|
self.created_issues: list[dict] = []
|
||||||
|
self.issue_creation_enabled = False
|
||||||
|
|
||||||
|
|
||||||
class FakeGiteaHandler(BaseHTTPRequestHandler):
|
class FakeGiteaHandler(BaseHTTPRequestHandler):
|
||||||
|
|
@ -62,6 +63,9 @@ class FakeGiteaHandler(BaseHTTPRequestHandler):
|
||||||
if path != "/api/v1/repos/acme/mobile/issues":
|
if path != "/api/v1/repos/acme/mobile/issues":
|
||||||
self._json(404, {"message": "not found"})
|
self._json(404, {"message": "not found"})
|
||||||
return
|
return
|
||||||
|
if not self.server.issue_creation_enabled:
|
||||||
|
self._json(503, {"message": "release journey is still offline"})
|
||||||
|
return
|
||||||
self.server.created_issues.append(payload)
|
self.server.created_issues.append(payload)
|
||||||
assignee = payload.get("assignee")
|
assignee = payload.get("assignee")
|
||||||
self._json(
|
self._json(
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,7 @@ def test_release_artifact_files_one_mobile_issue_exactly_once_after_offline_relo
|
||||||
|
|
||||||
browser_errors.clear() # Chromium reports expected network errors while the context is offline.
|
browser_errors.clear() # Chromium reports expected network errors while the context is offline.
|
||||||
failed_responses.clear()
|
failed_responses.clear()
|
||||||
|
fake.issue_creation_enabled = True
|
||||||
context.set_offline(False)
|
context.set_offline(False)
|
||||||
page.evaluate("window.dispatchEvent(new Event('online'))")
|
page.evaluate("window.dispatchEvent(new Event('online'))")
|
||||||
for _ in range(80):
|
for _ in range(80):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user