deskbar-applet r2055 - in trunk: . deskbar/core deskbar/interfaces
- From: sebp svn gnome org
- To: svn-commits-list gnome org
- Subject: deskbar-applet r2055 - in trunk: . deskbar/core deskbar/interfaces
- Date: Sun, 30 Mar 2008 17:44:27 +0100 (BST)
Author: sebp
Date: Sun Mar 30 17:44:27 2008
New Revision: 2055
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=2055&view=rev
Log:
Added sanity checks
Modified:
trunk/ChangeLog
trunk/deskbar/core/CoreImpl.py
trunk/deskbar/core/ModuleLoader.py
trunk/deskbar/interfaces/Match.py
Modified: trunk/deskbar/core/CoreImpl.py
==============================================================================
--- trunk/deskbar/core/CoreImpl.py (original)
+++ trunk/deskbar/core/CoreImpl.py Sun Mar 30 17:44:27 2008
@@ -3,6 +3,7 @@
import gobject
import gtk
import deskbar
+import deskbar.interfaces.Match
from deskbar.core.GconfStore import GconfStore
from deskbar.core.ModuleInstaller import ModuleInstaller
from deskbar.core.ModuleLoader import ModuleLoader
@@ -354,6 +355,9 @@
def forward_query_ready(self, handler, query, matches):
if query == self._last_query and matches != None and len(matches) > 0 and not self._stop_queries:
+ for match in matches:
+ if not isinstance(match, deskbar.interfaces.Match):
+ raise TypeError("Handler %r returned an invalid match: %r", handler, match)
self._emit_query_ready(matches)
def update_gconf(self):
Modified: trunk/deskbar/core/ModuleLoader.py
==============================================================================
--- trunk/deskbar/core/ModuleLoader.py (original)
+++ trunk/deskbar/core/ModuleLoader.py Sun Mar 30 17:44:27 2008
@@ -2,6 +2,7 @@
from os.path import abspath, expanduser, join, basename
import deskbar
import deskbar.core.Categories
+import deskbar.interfaces.Module
import gobject
import gtk
import logging
@@ -138,6 +139,8 @@
for mod in modules:
LOGGER.info("Loading module '%s' from file %s.", mod.INFOS["name"], filename)
mod_instance = mod ()
+ if not isinstance(mod_instance, deskbar.interfaces.Module):
+ raise TypeError("Module %s in %s is not a sub-class of deskbar.interfaces.Module" % (mod, filename))
mod_instance.set_filename( filename )
mod_instance.set_id( os.path.basename(filename) )
Modified: trunk/deskbar/interfaces/Match.py
==============================================================================
--- trunk/deskbar/interfaces/Match.py (original)
+++ trunk/deskbar/interfaces/Match.py Sun Mar 30 17:44:27 2008
@@ -1,6 +1,7 @@
+from deskbar.core.Categories import CATEGORIES
import deskbar.core.Utils
+import deskbar.interfaces.Action
import gtk.gdk
-from deskbar.core.Categories import CATEGORIES
import logging
LOGGER = logging.getLogger(__name__)
@@ -163,6 +164,9 @@
@return: Returns False if the action hasn't been added,
beacause it's not valid
"""
+ if not isinstance(action, deskbar.interfaces.Action):
+ raise TypeError("Expected deskbar.interfaces.Action but got %r" % action)
+
if not action.is_valid():
LOGGER.warning("Action %r is not valid, not adding it" % action)
return False
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]