diff --git a/tradein-mvp/backend/tests/test_backfill_wave2.py b/tradein-mvp/backend/tests/test_backfill_wave2.py index e08ac26d..63c12f1c 100644 --- a/tradein-mvp/backend/tests/test_backfill_wave2.py +++ b/tradein-mvp/backend/tests/test_backfill_wave2.py @@ -258,9 +258,18 @@ async def test_cian_price_history_saves_changes(): patch("app.services.cian_price_history.save_detail_enrichment") as mock_save, patch("app.services.cian_price_history.get_scraper_delay", return_value=0.0), ): + # Call 1: SELECT listings → .mappings().all() + mock_listings_result = MagicMock() mock_mappings = MagicMock() mock_mappings.all.return_value = rows - mock_db.execute.return_value.mappings.return_value = mock_mappings + mock_listings_result.mappings.return_value = mock_mappings + # Call 2: SELECT COUNT(*) before save → scalar_one() == 0 + mock_before_result = MagicMock() + mock_before_result.scalar_one.return_value = 0 + # Call 3: SELECT COUNT(*) after save → scalar_one() == 2 (2 rows inserted) + mock_after_result = MagicMock() + mock_after_result.scalar_one.return_value = 2 + mock_db.execute.side_effect = [mock_listings_result, mock_before_result, mock_after_result] result = await backfill_cian_price_history(mock_db, batch_size=10) diff --git a/tradein-mvp/backend/tests/test_matching.py b/tradein-mvp/backend/tests/test_matching.py index ae527f0c..d3d5e322 100644 --- a/tradein-mvp/backend/tests/test_matching.py +++ b/tradein-mvp/backend/tests/test_matching.py @@ -151,6 +151,7 @@ def test_match_house_tier0_cadastr(): [ None, # pg_advisory_xact_lock {"id": 42}, # cadastral match + None, # _insert_alias (added by #1543: register fp/addr alias after cadastr_exact) None, # _upsert_house_source (INSERT ... ON CONFLICT) ] ) diff --git a/tradein-mvp/backend/tests/test_sber_index.py b/tradein-mvp/backend/tests/test_sber_index.py index 936c6918..728868f5 100644 --- a/tradein-mvp/backend/tests/test_sber_index.py +++ b/tradein-mvp/backend/tests/test_sber_index.py @@ -312,6 +312,9 @@ class _ExecuteCapture: def commit(self) -> None: pass + def rollback(self) -> None: + pass + @pytest.mark.asyncio async def test_pull_sber_indices_upsert_on_conflict_idempotent() -> None: