def test_component_factory_create_too_many_options(): csymbol = MockComponentSymbol(view_options=['a', 'b'], presenter_options=['x', 'y']) # Pass unknown options 'm' and 'n' cfactory = ComponentFactory(csymbol, options={'x': 1, 'y': 2, 'm': 100, 'n': 200}) with pytest.raises(TypeError): cfactory.create()
def test_component_factory_create_constructs_view_and_presenter_with_right_arguments \ (options, expect_view, expect_presenter): csymbol = MockComponentSymbol(view_options=['a', 'b'], presenter_options=['x', 'y']) cfactory = ComponentFactory(csymbol, options) cfactory.create() csymbol._view_cls.assert_called_once_with(env=None, options=expect_view) csymbol.presenter_cls.assert_called_once_with(env=None, options=expect_presenter)
def test_component_factory_create_with_environment(): csymbol = MockComponentSymbol(view_options=['a', 'b'], presenter_options=['x', 'y']) cfactory = ComponentFactory(csymbol) mock_view_env = Mock() mock_presenter_env = Mock() cfactory.create(view_env=mock_view_env, presenter_env=mock_presenter_env) csymbol._view_cls.assert_called_once_with(env=mock_view_env, options={}) csymbol.presenter_cls.assert_called_once_with(env=mock_presenter_env, options={})
def test_component_factory_create_constructs_component(MockComponent): csymbol = MockComponentSymbol(view_options=['a', 'b'], presenter_options=['x', 'y']) cfactory = ComponentFactory(csymbol) component = cfactory.create() new_view = csymbol._view_cls.return_value new_presenter = csymbol.presenter_cls.return_value MockComponent.assert_called_once_with(view=new_view, presenter=new_presenter) expect_component = MockComponent.return_value assert component == expect_component
def test_component_factory_fork(): csymbol = MockComponentSymbol(view_options=['a', 'b'], presenter_options=['x', 'y']) cfactory1 = ComponentFactory(csymbol, options={'a': 1, 'x': 3}) cfactory2 = cfactory1.fork(b=2, y=4) # Create using cfactory1 cfactory1.create() csymbol.view_cls.assert_called_once_with(env=None, options={'a': 1}) csymbol.presenter_cls.assert_called_once_with(env=None, options={'x': 3}) # Reset mocks csymbol.view_cls.reset_mock() csymbol.presenter_cls.reset_mock() # Create using cfactory2 cfactory2.create() csymbol.view_cls.assert_called_once_with(env=None, options={'a': 1, 'b': 2}) csymbol.presenter_cls.assert_called_once_with(env=None, options={'x': 3, 'y': 4})