from polyfactory.factories.pydantic_factory import ModelFactory from src.fivetran_client import ( ConnectCard, ConnectionSetupState, ConnectionStatus, ConnectionSyncState, ShopifyConnection, ShopifyConnectionConfig, ) class ConnectionStatusFactory(ModelFactory[ConnectionStatus]): __model__ = ConnectionStatus setup_state = ConnectionSetupState.INCOMPLETE sync_state = ConnectionSyncState.SCHEDULED class ShopifyConnectionFactory(ModelFactory[ShopifyConnection]): __model__ = ShopifyConnection id = "conn_test_abc123" service = "shopify" status = ConnectionStatusFactory name = "shopify_test_store" config = ShopifyConnectionConfig(shop="test.myshopify.com") sync_frequency = 1440 @classmethod def connected(cls, **kwargs) -> ShopifyConnection: return cls.build( status=ConnectionStatus( setup_state=ConnectionSetupState.CONNECTED, sync_state=ConnectionSyncState.SCHEDULED, ), **kwargs, ) @classmethod def incomplete(cls, **kwargs) -> ShopifyConnection: return cls.build( status=ConnectionStatus( setup_state=ConnectionSetupState.INCOMPLETE, sync_state=ConnectionSyncState.SCHEDULED, ), **kwargs, ) @classmethod def broken(cls, **kwargs) -> ShopifyConnection: return cls.build( status=ConnectionStatus( setup_state=ConnectionSetupState.BROKEN, sync_state=ConnectionSyncState.SCHEDULED, ), **kwargs, ) @classmethod def syncing(cls, **kwargs) -> ShopifyConnection: return cls.build( status=ConnectionStatus( setup_state=ConnectionSetupState.CONNECTED, sync_state=ConnectionSyncState.SYNCING, ), **kwargs, ) @classmethod def paused(cls, **kwargs) -> ShopifyConnection: return cls.build( status=ConnectionStatus( setup_state=ConnectionSetupState.CONNECTED, sync_state=ConnectionSyncState.PAUSED, ), **kwargs, ) class ConnectCardFactory(ModelFactory[ConnectCard]): __model__ = ConnectCard token = "test_token_abc123" uri = "https://fivetran.com/connect-card/test_token_abc123"