Exemple #1
0
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()
Exemple #2
0
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)
Exemple #3
0
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={})
Exemple #4
0
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
Exemple #5
0
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})