Python testing with pytest: fixtures, parametrize, mocking with unittest.mock, and coverage
68
82%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
unittest for new code.pytest / pytest --cov=src --cov-report=term-missingtests/test_<module>.py or co-located src/utils/test_format.py.tests/conftest.py.def test_format_date_returns_iso_string_for_valid_date():
# Arrange
date = datetime(2026, 1, 15)
# Act
result = format_date(date)
# Assert
assert result == "2026-01-15"# conftest.py
@pytest.fixture
def db_session():
session = create_test_session()
yield session
session.rollback()
session.close()
# test file
def test_user_created(db_session):
user = create_user(db_session, name="Alice")
assert user.id is not None@pytest.mark.parametrize("value,expected", [
("", True),
(" ", True),
("hello", False),
])
def test_is_blank(value, expected):
assert is_blank(value) == expectedfrom unittest.mock import patch, MagicMock
def test_sends_email_on_signup(mock_smtp):
with patch("myapp.mailer.smtplib.SMTP") as mock_smtp:
send_welcome_email("user@example.com")
mock_smtp.return_value.sendmail.assert_called_once()pytest --cov in CI; fail below threshold with --cov-fail-under=80.c0b2e4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.