/ justapi / benchmarks / smoke_dbpool_prerun.py
swadhinbiswas p0: production hardening sweep — 19 fixes (WASM OOM, mutex poisoning, GIL pool deadlock, envelope detection, SQLite pragmas, traversal, credentials, etc.) · 7/24/2026
f06ae7c
36 lines · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import time, threading, urllib.request
from justapi import JustAPIApp, Database

# TODO: set JUSTAPI_PG_URL or pass via env var — never commit live credentials
URL = None  # overridden by environment

app = JustAPIApp()
app.set_database(
    URL,
    init_sql="CREATE TABLE IF NOT EXISTS dbpool_demo (id SERIAL PRIMARY KEY, name TEXT, qty INT)",
)

# FOOTGUN FIX: app.db must work BEFORE run() (no server started yet).
assert app.db is not None, "app.db was None before run()"
pre = app.db.query("SELECT 1 AS ok")
assert pre == [{"ok": 1}], pre
print("PRE-RUN app.db OK:", pre)

app.db.execute("DELETE FROM dbpool_demo")
app.db.execute("INSERT INTO dbpool_demo (name, qty) VALUES (?, ?)", ["alpha", 10])
seed = app.db.query("SELECT * FROM dbpool_demo ORDER BY id")
print("PRE-RUN SEED:", seed)

@app.get("/pre")
def pre(req):
    return {"rows": app.db.query("SELECT count(*) AS c FROM dbpool_demo")}

srv = threading.Thread(target=lambda: app.run("127.0.0.1:8124"), daemon=True)
srv.start()
time.sleep(2.0)

with urllib.request.urlopen("http://127.0.0.1:8124/pre", timeout=10) as r:
    print("RUNTIME:", r.read().decode())

print("FOOTGUN FIX VERIFIED")