fix: normalize unicode escape sequences and reformat multi-line expressions across codebase

This commit is contained in:
2026-06-09 16:48:08 +00:00
parent 66dfda88bc
commit c4f2937415
175 changed files with 12660 additions and 4175 deletions
+69 -21
View File
@@ -42,6 +42,7 @@ def run_async(coro):
thread.start()
thread.join()
from devplacepy.database import refresh_snapshot
refresh_snapshot()
if "error" in box:
raise box["error"]
@@ -51,6 +52,7 @@ def run_async(coro):
@pytest.fixture(autouse=True)
def _fresh_db_snapshot():
from devplacepy.database import refresh_snapshot
refresh_snapshot()
yield
@@ -76,7 +78,9 @@ def pytest_runtest_makereport(item, call):
obj = item.funcargs[name]
if name in ("alice", "bob"):
obj = obj[0]
save_failure_screenshot(obj, item.nodeid.replace("::", "_").replace("/", "_"))
save_failure_screenshot(
obj, item.nodeid.replace("::", "_").replace("/", "_")
)
except Exception:
pass
@@ -96,8 +100,18 @@ def app_server(test_db_path):
env["PYTHONUNBUFFERED"] = "1"
log_file = tempfile.NamedTemporaryFile(suffix=f"_server_{PORT}.log", delete=False)
proc = subprocess.Popen(
[sys.executable, "-m", "uvicorn", "devplacepy.main:app",
"--host", "127.0.0.1", "--port", str(PORT), "--log-level", "warning"],
[
sys.executable,
"-m",
"uvicorn",
"devplacepy.main:app",
"--host",
"127.0.0.1",
"--port",
str(PORT),
"--log-level",
"warning",
],
cwd=str(PROJECT_ROOT),
env=env,
stdout=log_file,
@@ -115,6 +129,7 @@ def app_server(test_db_path):
while time.time() < deadline:
try:
import urllib.request
urllib.request.urlopen(f"{BASE_URL}/", timeout=2)
break
except Exception:
@@ -122,21 +137,21 @@ def app_server(test_db_path):
if poll is not None:
proc.wait()
raise RuntimeError(
f"Server process died (exit code {poll}). "
f"Log:\n{server_log()}"
f"Server process died (exit code {poll}). Log:\n{server_log()}"
)
time.sleep(0.5)
else:
proc.terminate()
proc.wait(timeout=5)
raise RuntimeError(
f"Server did not start after 30s. "
f"Log:\n{server_log()}"
)
raise RuntimeError(f"Server did not start after 30s. Log:\n{server_log()}")
from devplacepy.database import get_table as _get_table
ops_settings = _get_table("site_settings")
for key, value in (("rate_limit_per_minute", "1000000"), ("rate_limit_window_seconds", "60")):
for key, value in (
("rate_limit_per_minute", "1000000"),
("rate_limit_window_seconds", "60"),
):
if not ops_settings.find_one(key=key):
ops_settings.insert({"uid": f"test_{key}", "key": key, "value": value})
@@ -158,21 +173,29 @@ def app_server(test_db_path):
@pytest.fixture(scope="session")
def playwright_instance():
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
yield p
@pytest.fixture(scope="session")
def browser(playwright_instance):
headless = os.environ.get("PLAYWRIGHT_HEADLESS", "1") == "1"
b = playwright_instance.chromium.launch(
headless=headless, slow_mo=int(os.environ.get("PLAYWRIGHT_SLOW_MO", "0")), args=["--window-size=1400,900"],
headless=headless,
slow_mo=int(os.environ.get("PLAYWRIGHT_SLOW_MO", "0")),
args=["--window-size=1400,900"],
)
yield b
b.close()
@pytest.fixture(scope="module")
def browser_context(browser):
ctx = browser.new_context(viewport={"width": 1400, "height": 900}, permissions=["clipboard-read", "clipboard-write"])
ctx = browser.new_context(
viewport={"width": 1400, "height": 900},
permissions=["clipboard-read", "clipboard-write"],
)
yield ctx
ctx.close()
@@ -186,6 +209,7 @@ def page(browser_context):
yield p
p.close()
def signup_user(page, user):
page.bring_to_front()
page.goto(f"{BASE_URL}/auth/signup", wait_until="domcontentloaded")
@@ -208,6 +232,7 @@ def login_user(page, user):
def assert_share_copies(page, expected_fragment):
from playwright.sync_api import expect
share = page.locator("button[data-share]").first
share.scroll_into_view_if_needed()
share.click()
@@ -218,7 +243,9 @@ def assert_share_copies(page, expected_fragment):
except Exception:
clip = None
if clip:
assert clip.startswith("http") and expected_fragment in clip, f"clipboard={clip!r}"
assert clip.startswith("http") and expected_fragment in clip, (
f"clipboard={clip!r}"
)
@pytest.fixture(scope="session")
@@ -226,15 +253,20 @@ def seeded_db(app_server):
"""Create test users once at session level using requests directly."""
import urllib.request
import urllib.parse
users = [
("alice_test", "alice@test.devplace", "secret123"),
("bob_test", "bob@test.devplace", "secret456"),
]
for username, email, pw in users:
data = urllib.parse.urlencode({
"username": username, "email": email,
"password": pw, "confirm_password": pw,
}).encode()
data = urllib.parse.urlencode(
{
"username": username,
"email": email,
"password": pw,
"confirm_password": pw,
}
).encode()
req = urllib.request.Request(
f"{BASE_URL}/auth/signup",
data=data,
@@ -242,8 +274,16 @@ def seeded_db(app_server):
)
urllib.request.urlopen(req)
return {
"alice": {"username": "alice_test", "email": "alice@test.devplace", "password": "secret123"},
"bob": {"username": "bob_test", "email": "bob@test.devplace", "password": "secret456"},
"alice": {
"username": "alice_test",
"email": "alice@test.devplace",
"password": "secret123",
},
"bob": {
"username": "bob_test",
"email": "bob@test.devplace",
"password": "secret456",
},
}
@@ -255,7 +295,10 @@ def alice(page, seeded_db):
@pytest.fixture
def bob(browser, seeded_db):
ctx = browser.new_context(viewport={"width": 1400, "height": 900}, permissions=["clipboard-read", "clipboard-write"])
ctx = browser.new_context(
viewport={"width": 1400, "height": 900},
permissions=["clipboard-read", "clipboard-write"],
)
p = ctx.new_page()
p.set_default_timeout(15000)
p.bring_to_front()
@@ -267,7 +310,11 @@ def bob(browser, seeded_db):
@pytest.fixture
def mobile_page(browser, seeded_db):
ctx = browser.new_context(viewport={"width": 412, "height": 840}, has_touch=True, permissions=["clipboard-read", "clipboard-write"])
ctx = browser.new_context(
viewport={"width": 412, "height": 840},
has_touch=True,
permissions=["clipboard-read", "clipboard-write"],
)
p = ctx.new_page()
p.set_default_timeout(15000)
p.bring_to_front()
@@ -280,5 +327,6 @@ def mobile_page(browser, seeded_db):
@pytest.fixture(scope="session")
def local_db():
from devplacepy.database import init_db, db
init_db()
return db