AI-ondersteund coderen voor developers
Francesca Donadoni
AI Curriculum Manager, DataCamp
Schrijf een Python-functie die e-mailadressen parseert.
Schrijf een Python-functie die e-mailadressen parseert. Die moet slagen voor deze tests:
- Accepteert een geldig adres zoals "[email protected]".
- Wijst ongeldige invoer af zoals "user@@domain".
- Geeft een ValueError bij lege invoer.
User prompt: Genereer unittests in Python voor een functie die door gebruikers verzonden formulierdata verwerkt en in een SQL-database invoegt.
Model response:
Hier is een kant-en-klare pytest-suite die validatie, normalisatie, bescherming tegen SQL-injectie en transactiegedrag dekt voor een functie die formulierdata verwerkt en een record in een SQL-database invoegt.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
User prompt: Genereer Python-unittests met pytest voor de volgende functie. Neem gevallen op voor lege invoer, SQL-trefwoorden in de invoer en speciale tekens. Ga uit van een mock-databaseverbinding. <INSERT FUNCTION>
Model response:
Hier is een self-contained pytest-testmodule die mocks gebruikt (geen echte DB) en lege invoer, SQL-trefwoorden en speciale tekens dekt. Er wordt ook gecontroleerd op commit/close-gedrag en dat uitzonderingen worden onderdrukt.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
Scan de volgende Python-functie op mogelijke kwetsbaarheden en stel veiligere alternatieven voor als die worden gevonden.
$$
Beoordeel deze code op veelvoorkomende webbeveiligingsproblemen, waaronder SQL-injectie, XSS en gebreken in invoervalidatie.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Hier is een gerichte OWASP Top 10-audit van je loginfunctie, plus een veiligere herschrijving.
username = "admin' --" → omzeilt wachtwoordcontrole. [...]AI-ondersteund coderen voor developers