예제 #1
0
def _createRealProject(name=None):
    app = common.getPitiviMock(proxyingStrategy=ProxyingStrategy.NOTHING)
    project_manager = ProjectManager(app)
    project_manager.newBlankProject()
    project = project_manager.current_project
    if name:
        project.name = name
    return project
예제 #2
0
    def _customSetUp(self, settings):
        # Always make sure we start with a clean medialibrary, and no other
        # is connected to some assets.
        self.clean()

        self.mainloop = GLib.MainLoop.new(None, False)
        self.check_no_transcoding = False
        self.app = common.getPitiviMock(settings)
        self.app.project_manager = ProjectManager(self.app)
        self.medialibrary = medialibrary.MediaLibraryWidget(self.app)
        self.app.project_manager.newBlankProject(ignore_unsaved_changes=True)
        self.app.project_manager.current_project.connect(
            "loaded", self.projectLoadedCb)
        self.mainloop.run()
예제 #3
0
    def createTimeline(self):
        app = common.getPitiviMock()
        project_manager = ProjectManager(app)
        project_manager.newBlankProject()
        project = project_manager.current_project

        timeline_container = TimelineContainer(app)
        timeline_container.setProject(project)

        timeline = timeline_container.timeline
        timeline.get_parent = mock.MagicMock()

        timeline.app.settings.leftClickAlsoSeeks = False

        return timeline
예제 #4
0
    def testSwitchContextTab(self):
        """
        Test tab switches
        """
        app = common.getPitiviMock()
        mainwindow = PitiviMainWindow(app)
        for expected_tab, b_element in [
                (2, GES.TitleClip()),
                (0, GES.SourceClip()),
                (1, GES.TransitionClip())]:
            mainwindow.switchContextTab(b_element)
            self.assertEqual(expected_tab,
                             mainwindow.context_tabs.get_current_page(),
                             b_element)
            # Make sure the tab does not change when using an invalid argument.
            mainwindow.switchContextTab("invalid")
            self.assertEqual(
                expected_tab, mainwindow.context_tabs.get_current_page())

        mainwindow.destroy()
예제 #5
0
 def testLoad(self):
     ptv = common.getPitiviMock(proxyingStrategy=ProxyingStrategy.NOTHING)
     project = Project(uri="fake.xges", app=ptv)
     self.assertFalse(project._has_default_video_settings)
     self.assertFalse(project._has_default_audio_settings)
예제 #6
0
 def __init__(self):
     pipeline.Pipeline.__init__(self, common.getPitiviMock(None))
     self.state_calls = {}
     self._timeline = mock.MagicMock()
예제 #7
0
    def __loading_failure(self, has_proxy):
        mainloop = GLib.MainLoop.new(None, False)

        app = common.getPitiviMock(
            settings={"lastProjectFolder": "/tmp",
                      "edgeSnapDeadband": 32})
        app.project_manager = ProjectManager(app)
        mainwindow = PitiviMainWindow(app)
        mainwindow.viewer = mock.MagicMock()

        def __pm_missing_uri_cb(project_manager, project,
                                error, asset):
            nonlocal mainloop
            nonlocal mainwindow
            nonlocal self
            nonlocal app
            nonlocal has_proxy

            with mock.patch('gi.repository.Gtk.Dialog') as dialog:
                failed_cb = mock.MagicMock()
                app.project_manager.connect("new-project-failed", failed_cb)

                dialog.return_value = mock.MagicMock()
                dialog.return_value.run = mock.MagicMock(
                    return_value=Gtk.ResponseType.CLOSE)

                # Call the actual callback
                # pylint: disable=protected-access
                app.proxy_manager.checkProxyLoadingSucceeded =  \
                    mock.MagicMock(return_value=has_proxy)

                mainwindow._projectManagerMissingUriCb(
                    project_manager, project, error, asset)

                self.assertTrue(dialog.called)
                self.assertTrue(dialog.return_value.run.called)
                self.assertEqual(failed_cb.called, not has_proxy)

            # pylint: disable=protected-access
            app.project_manager.connect("missing-uri",
                                        mainwindow._projectManagerMissingUriCb)
            # pylint: disable=protected-access
            app.project_manager.connect("new-project-failed",
                                        mainwindow._projectManagerNewProjectFailedCb)

            mainwindow.destroy()
            mainloop.quit()

        # pylint: disable=protected-access
        disconnectAllByFunc(app.project_manager,
                            mainwindow._projectManagerMissingUriCb)
        disconnectAllByFunc(app.project_manager,
                            mainwindow._projectManagerNewProjectFailedCb)

        app.project_manager.connect("missing-uri",
                                    __pm_missing_uri_cb)

        xges_path, uri = self.createTempProject()
        try:
            app.project_manager.loadProject(uri)
        finally:
            os.remove(xges_path)

        mainloop.run()