Как писать параметризованные SQL запросы в тестах?

Middle
395 просмотров
AFK Offer AI

Параметризованные запросы — защита от SQL injection и переиспользование. Python psycopg2: cursor.execute("SELECT * FROM users WHERE email = %s", (email,)). Никогда: f-string или конкатенация в SQL! SQLAlchemy: session.execute(text("SELECT * FROM users WHERE id = :id"), {"id": user_id}). Pytest fixture с parametrize + параметризованный SQL запрос — тестируем разные сценарии. В тестах: всегда используем placeholders, не форматируем строки вручную — это и безопаснее, и правильнее.

Следующий вопрос

Напишите тесты для проверки сортировки: API GET /api/products?sort=price_asc и sort=price_desc возвращают товары в правильном порядке.