fs-lawrisk/tools/diagnostic_tool.py

78 lines
2.8 KiB
Python
Raw Permalink Normal View History

import os
import sys
# Add project root to sys.path
sys.path.append(os.getcwd())
from lawrisk.utils.env_loader import load_env
load_env()
from lawrisk.services.licensing_repo import filter_permits_advanced
import pg8000.dbapi as pg
def verify():
print("Verifying fix...")
# 1. Fetch '市级' ID
conn_params = {
"host": os.getenv("LIC_PG_HOST", "172.24.240.1"),
"port": int(os.getenv("LIC_PG_PORT", os.getenv("PG_PORT", "5432"))),
"user": os.getenv("LIC_PG_USER", os.getenv("PG_USER", "postgres")),
"password": os.getenv("LIC_PG_PASSWORD", ""),
"database": os.getenv("LIC_PG_DATABASE", "licensing_risks"),
}
try:
conn = pg.connect(**conn_params)
cur = conn.cursor()
cur.execute("SELECT id FROM regions WHERE name = '市级'")
row = cur.fetchone()
if not row:
print("Region '市级' not found")
return
region_id = str(row[0])
conn.close()
print(f"Region ID for 市级: {region_id}")
# 2. Call filter_permits_advanced
# Note: filter_permits_advanced returns {permits: [...], pagination: {...}} NOT Dict[str, Any] directly?
# Checking signature in licensing_repo.py
# It ends with: return {"permits": permits_list, "pagination": {...}} (in my rewrite??)
# Wait, I rewrote the SQL but did I verify the return construction?
# The function was returning `Dict[str, Any]`.
# I need to ensure the return statement was preserved or I added it.
# My replace_file_content ONLY Replaced the SQL and Params.
# It kept the end of the function?
# I replaced from `sql = ...` to `count_params.append(...)`.
# The result construction logic `permits_map` and `return` were AFTER.
# So it should be fine.
result = filter_permits_advanced(regions=[region_id], limit=100)
# In licensing_repo.py, check return.
# It returns { "permits": permits_list, "pagination": ... } usually.
# Wait, my previous view showed `return permits_list`? No.
permits = result.get('permits', [])
count = len(permits)
pagination = result.get('pagination', {})
total = pagination.get('total', 0)
print(f"Filter returned {count} permits.")
print(f"Total count according to pagination: {total}")
# Check for unbound permits
unbound = [p for p in permits if not p['themes']]
print(f"Unbound permits in result: {len(unbound)}")
if count == 66:
print("SUCCESS: 66 permits returned.")
else:
print(f"FAILURE: Expected 66, got {count}.")
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
verify()