開発者のための AI 支援コーディング
Francesca Donadoni
AI Curriculum Manager, DataCamp
メールアドレスを解析するPython関数を書いてください。
メールアドレスを解析するPython関数を書いてください。以下のテストに合格する必要があります:
- 「[email protected]」のような有効なアドレスを受け付ける。
- 「user@@domain」のような無効な入力を拒否する。
- 空の入力に対してValueErrorを発生させる。
ユーザープロンプト: ユーザー入力のフォームデータを処理してSQLデータベースに挿入する関数に対し、Pythonのユニットテストを生成してください。
モデルの回答:
バリデーション、正規化、SQLインジェクション対策、トランザクション動作を網羅した、すぐに実行可能なpytestスイートです。
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
ユーザープロンプト: 以下の関数に対し、pytestを使用したPythonのユニットテストを生成してください。空入力、SQLキーワードの入力、特殊文字のケースを含めてください。データベース接続はモックを使用することを前提とします。 <INSERT FUNCTION>
モデルの回答:
モック(実DBなし)を使用し、空入力・SQLキーワード・特殊文字を網羅した自己完結型のpytestモジュールです。commit/closeの動作確認や例外処理の検証も含まれます。
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
以下のPython関数に潜在的な脆弱性がないかスキャンし、問題があればより安全な代替案を提案してください。
$$
このコードをSQLインジェクション、XSS、入力バリデーションの欠陥など、一般的なWebセキュリティの問題についてレビューしてください。

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' --" → パスワードチェックをバイパス。[...]開発者のための AI 支援コーディング