Lập trình với AI dành cho Developer
Francesca Donadoni
AI Curriculum Manager, DataCamp
Viết một hàm Python để phân tích cú pháp địa chỉ email.
Viết một hàm Python để phân tích cú pháp địa chỉ email. Hàm phải vượt qua các kiểm thử sau:
- Chấp nhận địa chỉ hợp lệ như "[email protected]".
- Từ chối đầu vào không hợp lệ như "user@@domain".
- Ném ValueError khi đầu vào rỗng.
Lời nhắc người dùng: Tạo unit test bằng Python cho một hàm xử lý dữ liệu biểu mẫu do người dùng gửi và chèn vào cơ sở dữ liệu SQL.
Phản hồi của mô hình:
Đây là bộ pytest sẵn chạy bao phủ kiểm tra hợp lệ, chuẩn hóa, an toàn trước SQL injection và hành vi giao dịch cho hàm xử lý dữ liệu biểu mẫu và chèn bản ghi vào cơ sở dữ liệu SQL.
[...]
# ---------- Test DB fixtures ----------
@pytest.fixture()
def conn():
"""In-memory SQLite DB with a users table."""
c = sqlite3.connect(":memory:") [...]
Lời nhắc người dùng: Tạo unit test Python dùng pytest cho hàm sau. Bao gồm các trường hợp đầu vào rỗng, chứa từ khóa SQL và ký tự đặc biệt. Giả sử có kết nối cơ sở dữ liệu mock. <INSERT FUNCTION>
Phản hồi của mô hình:
Đây là mô-đun kiểm thử pytest tự chứa dùng mock (không có DB thật) và bao phủ đầu vào rỗng, từ khóa SQL, ký tự đặc biệt. Đồng thời xác minh hành vi commit/close và việc nuốt ngoại lệ.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
Patch sqlite3.connect to return a MagicMock connection + cursor.
[...]
$$
Quét hàm Python sau để tìm lỗ hổng tiềm ẩn và đề xuất cách an toàn hơn nếu có.
$$
Rà soát mã này cho các vấn đề bảo mật web phổ biến, gồm SQL injection, XSS và lỗi kiểm tra đầu vào.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
Đây là bản audit OWASP Top 10 tập trung cho hàm đăng nhập của bạn, kèm bản viết lại an toàn hơn.
username = "admin' --" → bỏ qua kiểm tra mật khẩu. [...]Lập trình với AI dành cho Developer