style: repo-wide lint pass — make the lint gate green again
Push builds have been RED on the lint step since ~build 209 from accumulated formatting drift. This is the mechanical cleanup: ruff format + ruff --fix (UP038 isinstance unions, SIM105 contextlib.suppress, UP031 f-strings, SIM115 tempfile context manager), shfmt -i 2 -ci, nixpkgs-fmt/statix/deadnix (merged attrsets, dropped unused lib args), yamllint, and shell quoting fixes in tests/lasuite-docs/setup_custom_tests.sh. No behaviour changes intended; lint: PASS, unit tests: 138 passed.
This commit is contained in:
@ -93,9 +93,10 @@ class GhostAdmin:
|
||||
status, body = self.req(
|
||||
"POST", "/session/", {"username": ADMIN_EMAIL, "password": ADMIN_PW}
|
||||
)
|
||||
assert status in (200, 201), (
|
||||
f"ghost admin session login failed: HTTP {status}, body={body!r}"
|
||||
)
|
||||
assert status in (
|
||||
200,
|
||||
201,
|
||||
), f"ghost admin session login failed: HTTP {status}, body={body!r}"
|
||||
|
||||
def create_post(self, title: str, html: str) -> dict:
|
||||
status, body = self.req(
|
||||
|
||||
@ -53,13 +53,15 @@ def test_ghost_admin_route_is_wired(live_app):
|
||||
return None
|
||||
|
||||
status_body = harness_http.assert_converges(
|
||||
_ready, f"GET {url} returns Ghost admin (200) or setup redirect (302)",
|
||||
max_wait=60, interval=3,
|
||||
_ready,
|
||||
f"GET {url} returns Ghost admin (200) or setup redirect (302)",
|
||||
max_wait=60,
|
||||
interval=3,
|
||||
)
|
||||
status, body = status_body
|
||||
assert status in (200, 302), f"unexpected status: {status}"
|
||||
if status == 200:
|
||||
# The admin SPA references /ghost-assets/ or contains "ghost" in title/body
|
||||
assert "ghost" in body.lower(), (
|
||||
f"GET {url} 200 but body has no Ghost markers: {body[:200]!r}"
|
||||
)
|
||||
assert (
|
||||
"ghost" in body.lower()
|
||||
), f"GET {url} 200 but body has no Ghost markers: {body[:200]!r}"
|
||||
|
||||
@ -35,10 +35,10 @@ def test_content_api_settings_endpoint(live_app):
|
||||
assert body is not None, f"GET {url} returned non-JSON body"
|
||||
# On success: {"settings": {...}}. On error: {"errors": [...]}. Either shape is valid.
|
||||
if status == 200:
|
||||
assert isinstance(body, dict) and "settings" in body, (
|
||||
f"200 response missing 'settings' envelope: {body!r}"
|
||||
)
|
||||
assert (
|
||||
isinstance(body, dict) and "settings" in body
|
||||
), f"200 response missing 'settings' envelope: {body!r}"
|
||||
else:
|
||||
assert isinstance(body, dict) and ("errors" in body or "message" in body or body), (
|
||||
f"error response not a proper Ghost error envelope: {body!r}"
|
||||
)
|
||||
assert isinstance(body, dict) and (
|
||||
"errors" in body or "message" in body or body
|
||||
), f"error response not a proper Ghost error envelope: {body!r}"
|
||||
|
||||
@ -43,17 +43,17 @@ def test_create_post_roundtrip(live_app):
|
||||
title = f"ccci-marker-{uniq}"
|
||||
marker = f"ccci-body-marker-{uniq}-roundtrip"
|
||||
created = admin.create_post(title, f"<p>{marker}</p>")
|
||||
assert created.get("title") == title, (
|
||||
f"created post title mismatch: sent {title!r}, got {created.get('title')!r}"
|
||||
)
|
||||
assert (
|
||||
created.get("title") == title
|
||||
), f"created post title mismatch: sent {title!r}, got {created.get('title')!r}"
|
||||
|
||||
# 4) Read it back by id and assert the post survived the round-trip (title always returned;
|
||||
# html returned because we requested ?formats=html).
|
||||
got = admin.get_post(created["id"])
|
||||
assert got.get("title") == title, (
|
||||
f"post title did not round-trip: sent {title!r}, got {got.get('title')!r}"
|
||||
)
|
||||
assert (
|
||||
got.get("title") == title
|
||||
), f"post title did not round-trip: sent {title!r}, got {got.get('title')!r}"
|
||||
html = got.get("html") or ""
|
||||
assert marker in html, (
|
||||
f"post body did not round-trip: marker {marker!r} not in read-back html {html!r}"
|
||||
)
|
||||
assert (
|
||||
marker in html
|
||||
), f"post body did not round-trip: marker {marker!r} not in read-back html {html!r}"
|
||||
|
||||
@ -22,10 +22,7 @@ from harness import lifecycle # noqa: E402
|
||||
|
||||
|
||||
def _mysql(domain, sql):
|
||||
cmd = (
|
||||
'MYSQL_PWD="$(cat /run/secrets/db_password)" '
|
||||
f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
)
|
||||
cmd = 'MYSQL_PWD="$(cat /run/secrets/db_password)" ' f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="db").strip()
|
||||
|
||||
|
||||
|
||||
@ -63,7 +63,11 @@ def BACKUP_VERIFY(domain):
|
||||
try:
|
||||
out = lifecycle.exec_in_app(
|
||||
domain,
|
||||
["sh", "-c", "gzip -t /var/lib/mysql/backup.sql.gz && wc -c < /var/lib/mysql/backup.sql.gz"],
|
||||
[
|
||||
"sh",
|
||||
"-c",
|
||||
"gzip -t /var/lib/mysql/backup.sql.gz && wc -c < /var/lib/mysql/backup.sql.gz",
|
||||
],
|
||||
service="db",
|
||||
timeout=60,
|
||||
).strip()
|
||||
|
||||
@ -15,14 +15,11 @@ from harness import lifecycle # noqa: E402
|
||||
|
||||
|
||||
def _mysql(domain, sql):
|
||||
cmd = (
|
||||
'MYSQL_PWD="$(cat /run/secrets/db_password)" '
|
||||
f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
)
|
||||
cmd = 'MYSQL_PWD="$(cat /run/secrets/db_password)" ' f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="db").strip()
|
||||
|
||||
|
||||
def test_backup_captures_state(live_app):
|
||||
assert _mysql(live_app, "SELECT v FROM ci_marker;") == "original", (
|
||||
"the seeded ghost MySQL marker was not present at backup time"
|
||||
)
|
||||
assert (
|
||||
_mysql(live_app, "SELECT v FROM ci_marker;") == "original"
|
||||
), "the seeded ghost MySQL marker was not present at backup time"
|
||||
|
||||
@ -22,10 +22,7 @@ from harness import lifecycle # noqa: E402
|
||||
|
||||
|
||||
def _mysql(domain, sql):
|
||||
cmd = (
|
||||
'MYSQL_PWD="$(cat /run/secrets/db_password)" '
|
||||
f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
)
|
||||
cmd = 'MYSQL_PWD="$(cat /run/secrets/db_password)" ' f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="db").strip()
|
||||
|
||||
|
||||
|
||||
@ -14,14 +14,11 @@ from harness import lifecycle # noqa: E402
|
||||
|
||||
|
||||
def _mysql(domain, sql):
|
||||
cmd = (
|
||||
'MYSQL_PWD="$(cat /run/secrets/db_password)" '
|
||||
f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
)
|
||||
cmd = 'MYSQL_PWD="$(cat /run/secrets/db_password)" ' f'mysql -u root -N -s ghost -e "{sql}"'
|
||||
return lifecycle.exec_in_app(domain, ["sh", "-c", cmd], service="db").strip()
|
||||
|
||||
|
||||
def test_upgrade_preserves_state(live_app):
|
||||
assert _mysql(live_app, "SELECT v FROM ci_marker;") == "upgrade-survives", (
|
||||
"the seeded ghost MySQL marker did not survive the upgrade redeploy (data loss on upgrade)"
|
||||
)
|
||||
assert (
|
||||
_mysql(live_app, "SELECT v FROM ci_marker;") == "upgrade-survives"
|
||||
), "the seeded ghost MySQL marker did not survive the upgrade redeploy (data loss on upgrade)"
|
||||
|
||||
Reference in New Issue
Block a user