Разработка с помощью ИИ: курс для разработчиков
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 и специальными символами. Предполагайте использование mock-подключения к базе данных. <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()
Вот целенаправленный аудит функции login по OWASP Top 10, а также более безопасный вариант переработки.
username = "admin' --" → обходит проверку пароля. [...]Разработка с помощью ИИ: курс для разработчиков