refactor: make mock_enqueue_job fixture opt-in instead of autouse
Tests that call POST /api/counter/increment now explicitly request the mock_enqueue_job fixture. This prevents the mock from masking issues in other tests that don't need it.
This commit is contained in:
parent
6f3e729b25
commit
4d9edd7fd4
3 changed files with 10 additions and 8 deletions
|
|
@ -241,13 +241,15 @@ async def user_no_roles(client_factory):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture
|
||||||
def mock_enqueue_job():
|
def mock_enqueue_job():
|
||||||
"""Mock job enqueueing for all tests.
|
"""Mock job enqueueing for tests that hit the counter increment endpoint.
|
||||||
|
|
||||||
pgqueuer requires PostgreSQL-specific features that aren't available
|
pgqueuer requires PostgreSQL-specific features that aren't available
|
||||||
in the test database setup. We mock the enqueue function to avoid
|
in the test database setup. We mock the enqueue function to avoid
|
||||||
connection issues while still testing the counter logic.
|
connection issues while still testing the counter logic.
|
||||||
|
|
||||||
|
Tests that call POST /api/counter/increment must use this fixture.
|
||||||
"""
|
"""
|
||||||
mock = AsyncMock(return_value=1) # Return a fake job ID
|
mock = AsyncMock(return_value=1) # Return a fake job ID
|
||||||
with patch("routes.counter.enqueue_random_number_job", mock):
|
with patch("routes.counter.enqueue_random_number_job", mock):
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ async def test_get_counter_authenticated(client_factory):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_increment_counter(client_factory):
|
async def test_increment_counter(client_factory, mock_enqueue_job):
|
||||||
async with client_factory.get_db_session() as db:
|
async with client_factory.get_db_session() as db:
|
||||||
godfather = await create_user_with_roles(
|
godfather = await create_user_with_roles(
|
||||||
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
||||||
|
|
@ -126,7 +126,7 @@ async def test_increment_counter(client_factory):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_increment_counter_multiple(client_factory):
|
async def test_increment_counter_multiple(client_factory, mock_enqueue_job):
|
||||||
async with client_factory.get_db_session() as db:
|
async with client_factory.get_db_session() as db:
|
||||||
godfather = await create_user_with_roles(
|
godfather = await create_user_with_roles(
|
||||||
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
||||||
|
|
@ -157,7 +157,7 @@ async def test_increment_counter_multiple(client_factory):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_get_counter_after_increment(client_factory):
|
async def test_get_counter_after_increment(client_factory, mock_enqueue_job):
|
||||||
async with client_factory.get_db_session() as db:
|
async with client_factory.get_db_session() as db:
|
||||||
godfather = await create_user_with_roles(
|
godfather = await create_user_with_roles(
|
||||||
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
db, unique_email("gf"), "pass123", [ROLE_REGULAR]
|
||||||
|
|
@ -187,7 +187,7 @@ async def test_get_counter_after_increment(client_factory):
|
||||||
|
|
||||||
# Counter is shared between users
|
# Counter is shared between users
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_counter_shared_between_users(client_factory):
|
async def test_counter_shared_between_users(client_factory, mock_enqueue_job):
|
||||||
# Create godfather and invites for two users
|
# Create godfather and invites for two users
|
||||||
async with client_factory.get_db_session() as db:
|
async with client_factory.get_db_session() as db:
|
||||||
godfather = await create_user_with_roles(
|
godfather = await create_user_with_roles(
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ class TestCounterAccess:
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_regular_user_can_increment_counter(
|
async def test_regular_user_can_increment_counter(
|
||||||
self, client_factory, regular_user
|
self, client_factory, regular_user, mock_enqueue_job
|
||||||
):
|
):
|
||||||
async with client_factory.create(cookies=regular_user["cookies"]) as client:
|
async with client_factory.create(cookies=regular_user["cookies"]) as client:
|
||||||
response = await client.post("/api/counter/increment")
|
response = await client.post("/api/counter/increment")
|
||||||
|
|
@ -484,7 +484,7 @@ class TestAuditRecords:
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_counter_increment_creates_audit_record(
|
async def test_counter_increment_creates_audit_record(
|
||||||
self, client_factory, regular_user, admin_user
|
self, client_factory, regular_user, admin_user, mock_enqueue_job
|
||||||
):
|
):
|
||||||
"""Verify that counter increments are recorded and visible in audit."""
|
"""Verify that counter increments are recorded and visible in audit."""
|
||||||
# Regular user increments counter
|
# Regular user increments counter
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue