From 7dd118aa61ca38cacdc7c6750118ca6d14d4d693 Mon Sep 17 00:00:00 2001 From: Nicholas Tindle Date: Sun, 8 Feb 2026 19:48:08 -0600 Subject: [PATCH] fix(backend): remove database fixture dependency from block filtering tests Tests only need a fake user ID since everything is mocked. The setup_test_data fixture was hitting the database in CI and failing on store submission review creation. Co-Authored-By: Claude Opus 4.6 --- .../features/chat/tools/find_block_test.py | 19 ++++++-------- .../api/features/chat/tools/run_block_test.py | 26 ++++++++----------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/autogpt_platform/backend/backend/api/features/chat/tools/find_block_test.py b/autogpt_platform/backend/backend/api/features/chat/tools/find_block_test.py index d0ee0b2ff3..4f360e7033 100644 --- a/autogpt_platform/backend/backend/api/features/chat/tools/find_block_test.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/find_block_test.py @@ -11,10 +11,9 @@ from backend.api.features.chat.tools.find_block import ( ) from backend.data.block import BlockType -from ._test_data import make_session, setup_test_data +from ._test_data import make_session -# Prevent formatter from removing fixture imports -setup_test_data = setup_test_data +_TEST_USER_ID = "test-user-find-block" def make_mock_block( @@ -52,10 +51,9 @@ class TestFindBlockFiltering: assert "3b191d9f-356f-482d-8238-ba04b6d18381" in COPILOT_EXCLUDED_BLOCK_IDS @pytest.mark.asyncio(loop_scope="session") - async def test_excluded_block_type_filtered_from_results(self, setup_test_data): + async def test_excluded_block_type_filtered_from_results(self): """Verify blocks with excluded BlockTypes are filtered from search results.""" - user = setup_test_data["user"] - session = make_session(user_id=user.id) + session = make_session(user_id=_TEST_USER_ID) # Mock search returns an INPUT block (excluded) and a STANDARD block (included) search_results = [ @@ -85,7 +83,7 @@ class TestFindBlockFiltering: ): tool = FindBlockTool() response = await tool._execute( - user_id=user.id, session=session, query="test" + user_id=_TEST_USER_ID, session=session, query="test" ) # Should only return the standard block, not the INPUT block @@ -94,10 +92,9 @@ class TestFindBlockFiltering: assert response.blocks[0].id == "standard-block-id" @pytest.mark.asyncio(loop_scope="session") - async def test_excluded_block_id_filtered_from_results(self, setup_test_data): + async def test_excluded_block_id_filtered_from_results(self): """Verify SmartDecisionMakerBlock is filtered from search results.""" - user = setup_test_data["user"] - session = make_session(user_id=user.id) + session = make_session(user_id=_TEST_USER_ID) smart_decision_id = "3b191d9f-356f-482d-8238-ba04b6d18381" search_results = [ @@ -130,7 +127,7 @@ class TestFindBlockFiltering: ): tool = FindBlockTool() response = await tool._execute( - user_id=user.id, session=session, query="decision" + user_id=_TEST_USER_ID, session=session, query="decision" ) # Should only return normal block, not SmartDecisionMakerBlock diff --git a/autogpt_platform/backend/backend/api/features/chat/tools/run_block_test.py b/autogpt_platform/backend/backend/api/features/chat/tools/run_block_test.py index ce9f452a52..2aae45e875 100644 --- a/autogpt_platform/backend/backend/api/features/chat/tools/run_block_test.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/run_block_test.py @@ -8,10 +8,9 @@ from backend.api.features.chat.tools.models import ErrorResponse from backend.api.features.chat.tools.run_block import RunBlockTool from backend.data.block import BlockType -from ._test_data import make_session, setup_test_data +from ._test_data import make_session -# Prevent formatter from removing fixture imports -setup_test_data = setup_test_data +_TEST_USER_ID = "test-user-run-block" def make_mock_block( @@ -33,10 +32,9 @@ class TestRunBlockFiltering: """Tests for block execution guards in RunBlockTool.""" @pytest.mark.asyncio(loop_scope="session") - async def test_excluded_block_type_returns_error(self, setup_test_data): + async def test_excluded_block_type_returns_error(self): """Attempting to execute a block with excluded BlockType returns error.""" - user = setup_test_data["user"] - session = make_session(user_id=user.id) + session = make_session(user_id=_TEST_USER_ID) input_block = make_mock_block("input-block-id", "Input Block", BlockType.INPUT) @@ -46,7 +44,7 @@ class TestRunBlockFiltering: ): tool = RunBlockTool() response = await tool._execute( - user_id=user.id, + user_id=_TEST_USER_ID, session=session, block_id="input-block-id", input_data={}, @@ -57,10 +55,9 @@ class TestRunBlockFiltering: assert "designed for use within graphs only" in response.message @pytest.mark.asyncio(loop_scope="session") - async def test_excluded_block_id_returns_error(self, setup_test_data): + async def test_excluded_block_id_returns_error(self): """Attempting to execute SmartDecisionMakerBlock returns error.""" - user = setup_test_data["user"] - session = make_session(user_id=user.id) + session = make_session(user_id=_TEST_USER_ID) smart_decision_id = "3b191d9f-356f-482d-8238-ba04b6d18381" smart_block = make_mock_block( @@ -73,7 +70,7 @@ class TestRunBlockFiltering: ): tool = RunBlockTool() response = await tool._execute( - user_id=user.id, + user_id=_TEST_USER_ID, session=session, block_id=smart_decision_id, input_data={}, @@ -83,10 +80,9 @@ class TestRunBlockFiltering: assert "cannot be run directly in CoPilot" in response.message @pytest.mark.asyncio(loop_scope="session") - async def test_non_excluded_block_passes_guard(self, setup_test_data): + async def test_non_excluded_block_passes_guard(self): """Non-excluded blocks pass the filtering guard (may fail later for other reasons).""" - user = setup_test_data["user"] - session = make_session(user_id=user.id) + session = make_session(user_id=_TEST_USER_ID) standard_block = make_mock_block( "standard-id", "HTTP Request", BlockType.STANDARD @@ -98,7 +94,7 @@ class TestRunBlockFiltering: ): tool = RunBlockTool() response = await tool._execute( - user_id=user.id, + user_id=_TEST_USER_ID, session=session, block_id="standard-id", input_data={},