6 / 65 · 15 SQL & Database Testing · SELECT Queries for Verification← prev⊞ allnext →☰ Read as one page
1.6Query Result Processing in Python
# Using DictCursor for named access
from psycopg2.extras import DictCursor
def test_user_fields(db):
cursor = db.cursor(cursor_factory=DictCursor)
cursor.execute("SELECT * FROM users WHERE email = %s", ("alice@test.com",))
user = cursor.fetchone()
assert user["name"] == "Alice"
assert user["role"] == "viewer"
assert user["created_at"] is not None
# Fetching multiple rows
def test_all_active_users_have_email(db):
cursor = db.cursor(cursor_factory=DictCursor)
cursor.execute("SELECT id, email FROM users WHERE active = true")
users = cursor.fetchall()
for user in users:
assert user["email"] is not None, f"User {user['id']} has no email"
assert "@" in user["email"], f"User {user['id']} has invalid email: {user['email']}"