"""Unit tests for getting SWF workflows.""" import importlib from unittest.mock import MagicMock from feed_ingestion import flows class Mock_Flow(object): """Mocked flow.""" def __init__(self): """Initialize mock flow object.""" self.msg = 'i am a test workflow class' class Mock_Class(object): """Mock flow class.""" @property def Flow(self): """Property returning flow class.""" return Mock_Flow class Mock_Module(object): """Mock flow module object.""" pass def test_get_flow_get_a_class(monkeypatch): """Test get_flow as a class.""" mock_flow = Mock_Class() monkeypatch.setattr( importlib, 'import_module', MagicMock(return_value=mock_flow)) actual = flows.get_flow('Mock_Flow') assert isinstance(actual, Mock_Flow) def test_get_flow_get_a_module(monkeypatch): """Test get_flow with importlib.""" mock_flow = Mock_Module() monkeypatch.setattr( importlib, 'import_module', MagicMock(return_value=mock_flow)) actual = flows.get_flow('Mock_Flow') assert isinstance(actual, Mock_Module)