Кодування з підтримкою ШІ для розробників
Francesca Donadoni
AI Curriculum Manager, DataCamp
Напишіть функцію Python для розбору електронних адрес.
Напишіть функцію Python для розбору електронних адрес. Вона має пройти такі тести:
- Приймає коректну адресу на кшталт "[email protected]".
- Відхиляє некоректне введення на кшталт "user@@domain".
- Підіймає ValueError для порожнього введення.
Запит користувача: Згенеруйте модульні тести в Python для функції, що обробляє дані з форми користувача й вставляє їх у базу даних SQL.
Відповідь моделі:
Ось готовий до запуску набір pytest, що покриває валідацію, нормалізацію, захист від SQL-інʼєкцій і поведінку транзакцій для функції, яка обробляє дані форми та вставляє запис у базу даних SQL.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
Запит користувача: Згенеруйте модульні тести Python з pytest для наступної функції. Додайте кейси для порожнього введення, наявності ключових слів SQL у введенні та спеціальних символів. Припустіть наявність макета зʼєднання з базою. <INSERT FUNCTION>
Відповідь моделі:
Ось самодостатній модуль тестів pytest, що використовує моки (без реальної БД) і покриває порожнє введення, ключові слова SQL і спеціальні символи. Також перевіряє commit/close та ігнорування винятків.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
Перевірте наступну функцію Python на потенційні вразливості та запропонуйте безпечніші альтернативи, якщо їх буде виявлено.
$$
Перевірте цей код на типові проблеми веббезпеки, зокрема SQL-інʼєкції, XSS і помилки валідації введення.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Ось стислий аудит OWASP Top 10 для вашої функції login і безпечніший варіант.
username = "admin' --" → обходить перевірку пароля. [...]Кодування з підтримкою ШІ для розробників