Kodowanie wspomagane przez AI dla programistów
Francesca Donadoni
AI Curriculum Manager, DataCamp
Napisz funkcję w Pythonie do parsowania adresów e-mail.
Napisz funkcję w Pythonie do parsowania adresów e-mail. Powinna przejść następujące testy:
- Akceptuje poprawny adres, np. „[email protected]".
- Odrzuca niepoprawne dane wejściowe, np. „user@@domain".
- Zgłasza ValueError dla pustego wejścia.
Zapytanie użytkownika: Wygeneruj testy jednostkowe w Pythonie dla funkcji, która przetwarza dane z formularza i wstawia je do bazy SQL.
Odpowiedź modelu:
Oto gotowy do uruchomienia zestaw testów pytest obejmujący walidację, normalizację, bezpieczeństwo przed SQL injection oraz zachowanie transakcji dla funkcji przetwarzającej dane formularza i wstawiającej rekord do bazy SQL.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
Zapytanie użytkownika: Wygeneruj testy jednostkowe w Pythonie z użyciem pytest dla poniższej funkcji. Uwzględnij przypadki: puste wejście, słowa kluczowe SQL i znaki specjalne. Przyjmij mockowane połączenie z bazą danych. <INSERT FUNCTION>
Odpowiedź modelu:
Oto samodzielny moduł testowy pytest używający mocków (bez prawdziwej bazy), obejmujący puste wejście, słowa kluczowe SQL i znaki specjalne. Weryfikuje też zachowanie commit/close oraz obsługę wyjątków.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
Przeskanuj poniższą funkcję Pythona pod kątem potencjalnych podatności i zaproponuj bezpieczniejsze alternatywy, jeśli takie istnieją.
$$
Sprawdź ten kod pod kątem typowych problemów bezpieczeństwa, w tym SQL injection, XSS i błędów walidacji danych wejściowych.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Oto ukierunkowany audyt OWASP Top 10 funkcji logowania wraz z bezpieczniejszą wersją.
username = "admin' --" → pomija weryfikację hasła. [...]Kodowanie wspomagane przez AI dla programistów