[pitivi] application: Fix traceback when loading missing project
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] application: Fix traceback when loading missing project
- Date: Fri, 4 Oct 2019 22:56:58 +0000 (UTC)
commit d9e6d95200ef56ec62be6c91d0f143448161779c
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Sat Sep 21 23:29:49 2019 +0200
application: Fix traceback when loading missing project
Fixes #2350
pitivi/application.py | 23 +++++++++++------------
tests/test_application.py | 8 ++++++++
tests/test_project.py | 12 ++++++------
3 files changed, 25 insertions(+), 18 deletions(-)
---
diff --git a/pitivi/application.py b/pitivi/application.py
index bec3c1a8..af73f111 100644
--- a/pitivi/application.py
+++ b/pitivi/application.py
@@ -111,7 +111,8 @@ class Pitivi(Gtk.Application, Loggable):
# We need to make sure that the waiting time was more than 50 ms.
st = Gst.Structure.new_empty("wait")
st["duration"] = float((now - self._last_action_time) / Gst.SECOND)
- self._scenario_file.write(st.to_string() + "\n")
+ self._scenario_file.write(st.to_string())
+ self._scenario_file.write("\n")
self._last_action_time = now
if not isinstance(action, Gst.Structure):
@@ -123,7 +124,8 @@ class Pitivi(Gtk.Application, Loggable):
action = structure
- self._scenario_file.write(action.to_string() + "\n")
+ self._scenario_file.write(action.to_string())
+ self._scenario_file.write("\n")
self._scenario_file.flush()
def do_startup(self):
@@ -149,11 +151,8 @@ class Pitivi(Gtk.Application, Loggable):
self.system = get_system()
self.plugin_manager = PluginManager(self)
- self.project_manager.connect(
- "new-project-loading", self._newProjectLoadingCb)
- self.project_manager.connect(
- "new-project-loaded", self._newProjectLoaded)
- self.project_manager.connect_after("project-closed", self._projectClosed)
+ self.project_manager.connect("new-project-loaded", self._new_project_loaded_cb)
+ self.project_manager.connect_after("project-closed", self._project_closed_cb)
self.project_manager.connect("project-saved", self.__project_saved_cb)
self._createActions()
@@ -266,10 +265,7 @@ class Pitivi(Gtk.Application, Loggable):
self.write_action("load-project",
serialized_content=content)
- def _newProjectLoadingCb(self, unused_project_manager, project):
- self._setScenarioFile(project.get_uri())
-
- def _newProjectLoaded(self, unused_project_manager, project):
+ def _new_project_loaded_cb(self, unused_project_manager, project):
uri = project.get_uri()
if uri:
# We remove the project from recent projects list
@@ -282,17 +278,20 @@ class Pitivi(Gtk.Application, Loggable):
raise e
pass
self.recent_manager.add_item(uri)
+
self.action_log = UndoableActionLog()
self.action_log.connect("pre-push", self._action_log_pre_push_cb)
self.action_log.connect("commit", self._actionLogCommit)
self.action_log.connect("move", self._action_log_move_cb)
self.project_observer = ProjectObserver(project, self.action_log)
+ self._setScenarioFile(project.get_uri())
+
def __project_saved_cb(self, unused_project_manager, unused_project, uri):
if uri:
self.recent_manager.add_item(uri)
- def _projectClosed(self, unused_project_manager, project):
+ def _project_closed_cb(self, unused_project_manager, project):
if project.loaded:
self.action_log = None
self._syncDoUndo()
diff --git a/tests/test_application.py b/tests/test_application.py
index d15012ca..aac34782 100644
--- a/tests/test_application.py
+++ b/tests/test_application.py
@@ -18,8 +18,11 @@
# Boston, MA 02110-1301, USA.
"""Tests for the application module."""
# pylint: disable=missing-docstring,protected-access,no-self-use
+import tempfile
from unittest import mock
+from gi.repository import Gst
+
from pitivi import application
from pitivi import configure
from tests import common
@@ -108,3 +111,8 @@ class TestPitivi(common.TestCase):
with mock.patch.object(app, "inhibit") as inhibit_mock:
app.simple_inhibit("reason1", "flags1")
self.assertTrue(inhibit_mock.called)
+
+ def test_loading_missing_file(self):
+ app = common.create_pitivi()
+ project_uri = Gst.filename_to_uri(tempfile.NamedTemporaryFile().name)
+ app.project_manager.load_project(project_uri)
diff --git a/tests/test_project.py b/tests/test_project.py
index f45236fd..d056de8f 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -71,22 +71,22 @@ class TestProjectManager(common.TestCase):
self.listener = ProjectManagerListener(self.manager)
self.signals = self.listener.signals
- def testLoadProjectFailedUnknownFormat(self):
+ def test_loading_missing_project_file(self):
"""Checks new-project-failed is emitted for unsuitable formatters."""
- uri = "file:///Untitled.meh"
- self.manager.load_project(uri)
+ project_uri = Gst.filename_to_uri(tempfile.NamedTemporaryFile().name)
+ self.manager.load_project(project_uri)
# loading
name, args = self.signals[0]
- self.assertEqual(uri, args[0].get_uri(), self.signals)
+ self.assertEqual(project_uri, args[0].get_uri(), self.signals)
# failed
name, args = self.signals[1]
self.assertEqual("new-project-failed", name)
signalUri, unused_message = args
- self.assertEqual(uri, signalUri, self.signals)
+ self.assertEqual(project_uri, signalUri, self.signals)
- def testLoadProject(self):
+ def test_new_blank_project_signals(self):
self.manager.new_blank_project()
name, args = self.signals[0]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]