KI-gestütztes Programmieren für Entwickler
Francesca Donadoni
AI Curriculum Manager, DataCamp
Schreibe eine Python-Funktion, um E-Mail-Adressen zu parsen.
Schreibe eine Python-Funktion, um E-Mail-Adressen zu parsen. Sie sollte die folgenden Tests bestehen:
- Akzeptiert eine gültige Adresse wie "[email protected]".
- Lehnt ungültige Eingaben wie "user@@domain" ab.
- Löst einen ValueError bei leerer Eingabe aus.
Benutzeraufforderung: Erstelle Unit-Tests in Python für eine Funktion, die vom Benutzer übermittelte Formulardaten verarbeitet und in eine SQL-Datenbank einfügt.
Modellantwort:
Hier ist ein einsatzbereites pytest-Suite, das Validierung, Normalisierung, SQL-Injection-Sicherheit und Transaktionsverhalten für eine Funktion abdeckt, die Formulardaten verarbeitet und einen Datensatz in eine SQL-Datenbank einfügt.
[...]
# ---------- Test-DB-Fixtures ----------
@pytest.fixture()
def conn():
"""In-Memory SQLite-DB mit einer Benutzertabelle."""
c = sqlite3.connect(":memory:") [...]
Benutzeraufforderung: Erstelle Python-Unit-Tests mit pytest für die folgende Funktion. Füge Fälle für leere Eingaben, SQL-Schlüsselwörter in der Eingabe und Sonderzeichen hinzu. Gehe von einer Mock-Datenbankverbindung aus. <INSERT FUNCTION>
Modellantwort:
Hier ist ein eigenständiges pytest-Testmodul, das Mocks verwendet (keine echte DB) und leere Eingaben, SQL-Schlüsselwörter und Sonderzeichen abdeckt. Es überprüft auch das Commit/Close-Verhalten und dass Ausnahmen abgefangen werden.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect, um eine MagicMock-Verbindung + Cursor zurückzugeben.
[...]
$$
Überprüfe die folgende Python-Funktion auf potenzielle Schwachstellen und schlage sicherere Alternativen vor, falls welche gefunden werden.
$$
Überprüfe diesen Code auf gängige Web-Sicherheitsprobleme, einschließlich SQL-Injection, XSS und Eingabevalidierungsfehler.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Hier ist eine gezielte OWASP Top 10 Prüfung deiner Login-Funktion, plus eine sicherere Neufassung.
username = "admin' --" → umgeht die Passwortprüfung. [...]KI-gestütztes Programmieren für Entwickler