You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import sys
import pytest import wx from mock import MagicMock
from gooey.gui.lang import i18n from gooey.gui.model import MyModel from gooey.gui.presenter import Presenter from gooey.gui.util.freeze import get_resource_path from gooey.python_bindings import config_generator
@pytest.fixture def build_spec(complete_parser): return config_generator.create_from_parser(complete_parser, sys.argv[0])
@pytest.fixture def build_spec_subparser(subparser): return config_generator.create_from_parser(subparser, sys.argv[0])
@pytest.fixture def presentation_model(build_spec): app = wx.App(False) i18n.load(get_resource_path('languages'), build_spec['language']) model = MyModel(build_spec) view = MagicMock() presentation = Presenter(view, model) return presentation
@pytest.fixture def subparser_presentation_model(build_spec_subparser): app = wx.App(False) i18n.load(get_resource_path('languages'), 'english') model = MyModel(build_spec_subparser) view = MagicMock() presentation = Presenter(view, model) return presentation
# ---------------------------- # Tests # # ----------------------------
def test_presentation_init(presentation_model): '''Sanity check that the primary fields are set on init ''' presentation = presentation_model presentation.initialize_view() assert presentation.view.heading_title == presentation.model.heading_title assert presentation.view.heading_subtitle == presentation.model.heading_subtitle assert presentation.view.required_section.populate.called assert presentation.view.optional_section.populate.called # should not call when not running in column format assert not presentation.view.set_list_contents.called
def test_subparser_presentation_init_sets_sidebar(subparser_presentation_model): presentation = subparser_presentation_model presentation.initialize_view() # should be called to initialize the sidebar assert presentation.view.set_list_contents.called
def test_on_start_shows_err_dlg_if_missing_args(presentation_model): presentation = presentation_model presentation.initialize_view() presentation.on_start() assert presentation.view.show_missing_args_dialog.called presentation.view.show_missing_args_dialog.reset_mock()
# the inverse: # fill the missing args for arg in presentation.model.required_args: arg.value = 'foo' # patch the methods we don't need presentation.client_runner = MagicMock() presentation.update_model = MagicMock() presentation.model.build_command_line_string = MagicMock()
presentation.on_start() # should no longer show the dialog assert not presentation.view.show_missing_args_dialog.called
|