5 / 80 · 12 Programming for QA · Python Essentials for QA← prev⊞ allnext →☰ Read as one page
1.5Data Validation Patterns
import json
from datetime import datetime
def test_user_response_structure(api_client, base_url):
r = api_client.get(f"{base_url}/users/me")
user = r.json()
# Required fields exist
required_fields = {"id", "name", "email", "created_at", "role"}
assert required_fields.issubset(user.keys()), f"Missing: {required_fields - user.keys()}"
# Sensitive fields absent
assert "password" not in user
assert "password_hash" not in user
# Type validation
assert isinstance(user["id"], int)
assert isinstance(user["name"], str)
assert len(user["name"]) > 0
# Date format validation
datetime.fromisoformat(user["created_at"]) # Raises if invalid
# Enum validation
assert user["role"] in {"admin", "editor", "viewer"}