AI-Assisted Coding for Developers
Francesca Donadoni
AI Curriculum Manager, DataCamp
Napiš funkci v Pythonu pro parsování e-mailových adres.
Napiš funkci v Pythonu pro parsování e-mailových adres. Musí projít těmito testy:
- Přijme platnou adresu jako „[email protected]“.
- Odmítne neplatný vstup jako „user@@domain“.
- Vyvolá ValueError při prázdném vstupu.
Prompt uživatele: Vygeneruj v Pythonu unit testy pro funkci, která zpracovává data z formuláře a vkládá je do SQL databáze.
Odpověď modelu:
Zde je hotová sada testů pro pytest pokrývající validaci, normalizaci, ochranu proti SQL injection a chování transakcí pro funkci, která zpracovává data z formuláře a vloží záznam do SQL databáze.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
Prompt uživatele: Vygeneruj v Pythonu unit testy pomocí pytest pro následující funkci. Zahrň případy prázdného vstupu, SQL klíčových slov ve vstupu a speciálních znaků. Předpokládej mock databázové připojení. <INSERT FUNCTION>
Odpověď modelu:
Zde je samostatný testovací modul pro pytest, který používá mocky (bez reálné DB) a pokrývá prázdný vstup, SQL klíčová slova a speciální znaky. Ověřuje také chování commit/close a zachycení výjimek.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
Prohlédni následující funkci v Pythonu kvůli možným zranitelnostem a navrhni bezpečnější alternativy, pokud nějaké najdeš.
$$
Zkontroluj tento kód kvůli běžným bezpečnostním problémům webu, včetně SQL injection, XSS a chyb ve validaci vstupu.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Zde je cílený audit OWASP Top 10 vaší funkce login a bezpečnější přepis.
username = "admin' --" → obejde kontrolu hesla. [...]AI-Assisted Coding for Developers