def test_projects_controller_click_on_project_requests_the_project_detail(): projects = factories.projects() projects_view = views.projects.ProjectsView() executor = factories.patched_executor() _ = mock.Mock() projects_controller = controllers.projects.ProjectsController(projects_view, executor, _) signals.emit(projects_view.project_buttons[0], "click") executor.project_detail.assert_called_with(projects[0])
def test_projects_controller_click_on_project_when_project_is_fetched_transitions_to_project_detail(): projects = factories.projects() fetched_project = projects[0] projects_view = views.projects.ProjectsView() executor = factories.patched_executor(project_detail=factories.future(fetched_project)) state_machine = mock.Mock() projects_controller = controllers.projects.ProjectsController(projects_view, executor, state_machine) signals.emit(projects_view.project_buttons[0], "click") state_machine.project_detail.assert_called_with(fetched_project)
def test_projects_controller_when_requesting_a_project_info_message_is_shown(): projects = factories.projects() projects_view = views.projects.ProjectsView() projects_view.notifier = mock.Mock() executor = factories.patched_executor() _ = mock.Mock() projects_controller = controllers.projects.ProjectsController(projects_view, executor, _) signals.emit(projects_view.project_buttons[0], "click") assert projects_view.notifier.info_msg.call_count == 1
def test_projects_controller_when_project_fetching_fails_a_error_message_is_shown(): projects = factories.projects() fetched_project = projects[0] projects_view = views.projects.ProjectsView() projects_view.notifier = mock.Mock() executor = factories.patched_executor(project_detail=factories.future(None)) _ = mock.Mock() projects_controller = controllers.projects.ProjectsController(projects_view, executor, _) signals.emit(projects_view.project_buttons[0], "click") assert projects_view.notifier.error_msg.call_count == 1