@@ -61,6 +61,8 @@ def test_main_jobevent_service_with_jobs_calls_copy_table(mock_copy_table):
6161 """Test that collector calls copy_table when jobs are found."""
6262 mock_db = MagicMock ()
6363 mock_cursor = MagicMock ()
64+ # Configure mock cursor to simulate psycopg3 (no copy_expert method)
65+ del mock_cursor .copy_expert
6466 mock_db .cursor .return_value .__enter__ = MagicMock (return_value = mock_cursor )
6567 mock_db .cursor .return_value .__exit__ = MagicMock (return_value = False )
6668
@@ -92,6 +94,8 @@ def test_main_jobevent_service_query_structure(mock_copy_table):
9294 """Test that the SQL query has expected structure."""
9395 mock_db = MagicMock ()
9496 mock_cursor = MagicMock ()
97+ # Configure mock cursor to simulate psycopg3 (no copy_expert method)
98+ del mock_cursor .copy_expert
9599 mock_db .cursor .return_value .__enter__ = MagicMock (return_value = mock_cursor )
96100 mock_db .cursor .return_value .__exit__ = MagicMock (return_value = False )
97101
@@ -126,6 +130,8 @@ def test_main_jobevent_service_builds_temp_table_and_hourly_ranges(mock_copy_tab
126130 """Test that query uses temp table and builds hourly timestamp ranges."""
127131 mock_db = MagicMock ()
128132 mock_cursor = MagicMock ()
133+ # Configure mock cursor to simulate psycopg3 (no copy_expert method)
134+ del mock_cursor .copy_expert
129135 mock_db .cursor .return_value .__enter__ = MagicMock (return_value = mock_cursor )
130136 mock_db .cursor .return_value .__exit__ = MagicMock (return_value = False )
131137
@@ -201,6 +207,8 @@ def test_main_jobevent_service_playbook_stats_handling(mock_copy_table):
201207 """Test that query handles playbook_on_stats event specially."""
202208 mock_db = MagicMock ()
203209 mock_cursor = MagicMock ()
210+ # Configure mock cursor to simulate psycopg3 (no copy_expert method)
211+ del mock_cursor .copy_expert
204212 mock_db .cursor .return_value .__enter__ = MagicMock (return_value = mock_cursor )
205213 mock_db .cursor .return_value .__exit__ = MagicMock (return_value = False )
206214
0 commit comments