"""High-value tests for web/queue module and storage factory. Covers gaps not addressed by existing tests: - Storage factory session validation - QueueManager basic operations """ import pytest from unittest.mock import MagicMock, patch from local_deep_research.storage.factory import ( get_report_storage, ) class TestStorageFactorySessionValidation: """Test the storage factory session validation.""" def test_raises_when_session_is_none(self): """get_report_storage raises ValueError when session is None.""" with pytest.raises(ValueError, match="Database session is required"): get_report_storage(session=None) @patch("local_deep_research.storage.factory.DatabaseWithFileBackupStorage") @patch("local_deep_research.storage.factory.get_setting_from_snapshot") def test_explicit_false_skips_settings_lookup( self, mock_get_setting, mock_storage_cls ): """enable_file_backup=False never calls get_setting_from_snapshot.""" mock_session = MagicMock() get_report_storage(session=mock_session, enable_file_backup=False) mock_get_setting.assert_not_called() @patch("local_deep_research.storage.factory.DatabaseWithFileBackupStorage") @patch("local_deep_research.storage.factory.get_setting_from_snapshot") def test_explicit_true_skips_settings_lookup( self, mock_get_setting, mock_storage_cls ): """enable_file_backup=True never calls get_setting_from_snapshot.""" mock_session = MagicMock() get_report_storage(session=mock_session, enable_file_backup=True) mock_get_setting.assert_not_called() @patch("local_deep_research.storage.factory.DatabaseWithFileBackupStorage") def test_factory_propagates_session_to_storage(self, mock_storage_cls): """Session is passed through to DatabaseWithFileBackupStorage.""" mock_session = MagicMock() get_report_storage(session=mock_session, enable_file_backup=False) mock_storage_cls.assert_called_once_with( session=mock_session, enable_file_storage=False ) class TestQueueManagerBasics: """Test web/queue/manager.py basic operations.""" def test_manager_has_expected_methods(self): """QueueManager has expected public methods.""" from local_deep_research.web.queue.manager import QueueManager assert hasattr(QueueManager, "add_to_queue") assert hasattr(QueueManager, "remove_from_queue") assert hasattr(QueueManager, "get_queue_position") assert hasattr(QueueManager, "get_user_queue") def test_queue_manager_add_to_queue_signature(self): """add_to_queue method exists and is callable.""" from local_deep_research.web.queue.manager import QueueManager import inspect sig = inspect.signature(QueueManager.add_to_queue) # Should have self plus other params assert len(sig.parameters) > 1