import pytest from unittest.mock import MagicMock from tests.factories import ShopifyConnectionFactory, ConnectCardFactory @pytest.fixture def mock_sf(): sf = MagicMock() mock_cur = MagicMock() mock_cur.fetchall.return_value = [] mock_cur.fetchone.return_value = None mock_cur.description = [] sf.cursor.return_value = mock_cur return sf @pytest.fixture def mock_ft_instance(): client = MagicMock() client.get_group_connectors.return_value = [] client.create_shopify_connector.return_value = ShopifyConnectionFactory.incomplete() client.get_connection_status.return_value = ShopifyConnectionFactory.incomplete() client.get_connect_card.return_value = ConnectCardFactory.build() return client @pytest.fixture def mock_ft_class(mocker, mock_ft_instance): mock_cls = mocker.patch("src.app.FivetranClient") mock_cls.return_value.__enter__ = MagicMock(return_value=mock_ft_instance) mock_cls.return_value.__exit__ = MagicMock(return_value=False) return mock_ft_instance