|  | @@ -47,24 +47,21 @@ def check_db_version():
 | 
	
		
			
				|  |  |  class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |      """SQLite Database implementation"""
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    def __init__(self, filename=None):
 | 
	
		
			
				|  |  | +    def __init__(self):
 | 
	
		
			
				|  |  |          """Initialise SQLitePwmanDatabase instance."""
 | 
	
		
			
				|  |  |          Database.__init__(self)
 | 
	
		
			
				|  |  | -        if filename:
 | 
	
		
			
				|  |  | -            self._filename = filename
 | 
	
		
			
				|  |  | -        else:
 | 
	
		
			
				|  |  | -            try:
 | 
	
		
			
				|  |  | -                self._filename = config.get_value('Database', 'filename')
 | 
	
		
			
				|  |  | -            except KeyError, e:
 | 
	
		
			
				|  |  | -                raise DatabaseException(
 | 
	
		
			
				|  |  | -                    "SQLite: missing parameter [%s]" % (e))
 | 
	
		
			
				|  |  | +        # error handling is implemented in config.get_value
 | 
	
		
			
				|  |  | +        # so there's no need to try... except here...
 | 
	
		
			
				|  |  | +        self._filename = config.get_value('Database', 'filename')
 | 
	
		
			
				|  |  | +        if not self._filename:
 | 
	
		
			
				|  |  | +            raise DatabaseException("SQLite: missing config parameter: filename")
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _open(self):
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              self._con = sqlite.connect(self._filename)
 | 
	
		
			
				|  |  |              self._cur = self._con.cursor()
 | 
	
		
			
				|  |  |              self._checktables()
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def close(self):
 | 
	
	
		
			
				|  | @@ -108,9 +105,9 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |                  tags.append(tagstring)
 | 
	
		
			
				|  |  |                  row = self._cur.fetchone()
 | 
	
		
			
				|  |  |              return tags
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  | -        except sqlite.InterfaceError, e:
 | 
	
		
			
				|  |  | +        except sqlite.InterfaceError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise e
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def parse_node_string(self, string):
 | 
	
	
		
			
				|  | @@ -147,7 +144,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              sql = "UPDATE NODES SET DATA = ? WHERE ID = ?"
 | 
	
		
			
				|  |  |              self._cur.execute(sql, [node.dump_edit_to_db()[0], id])
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |          self._setnodetags(node)
 | 
	
		
			
				|  |  |          self._checktags()
 | 
	
	
		
			
				|  | @@ -178,7 +175,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |                  sql = "DELETE FROM NODES WHERE ID = ?"
 | 
	
		
			
				|  |  |                  self._cur.execute(sql, [n._id])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +            except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |                  raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |              self._deletenodetags(n)
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -207,13 +204,13 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |              rows = self._cur.fetchall()
 | 
	
		
			
				|  |  |              ids = [row[0] for row in rows]
 | 
	
		
			
				|  |  |              return ids
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _commit(self):
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              self._con.commit()
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              self._con.rollback()
 | 
	
		
			
				|  |  |              raise DatabaseException(
 | 
	
		
			
				|  |  |                  "SQLite: Error commiting data to db [%s]" % (e))
 | 
	
	
		
			
				|  | @@ -231,7 +228,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |          params = [node._id, tag_id]
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              self._cur.execute(sql, params)
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _tagids(self, tags):
 | 
	
	
		
			
				|  | @@ -249,7 +246,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |                  else:
 | 
	
		
			
				|  |  |                      self._create_tag(tag, None)
 | 
	
		
			
				|  |  |                      ids.append(self._cur.lastrowid)
 | 
	
		
			
				|  |  | -            except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +            except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |                  raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |          return ids
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -257,7 +254,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              sql = "DELETE FROM LOOKUP WHERE NODE = ?"
 | 
	
		
			
				|  |  |              self._cur.execute(sql, [node._id])
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |          self._commit()
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -273,7 +270,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |              sql = "DELETE FROM TAGS WHERE ID NOT IN (SELECT TAG FROM" \
 | 
	
		
			
				|  |  |                  + " LOOKUP GROUP BY TAG)"
 | 
	
		
			
				|  |  |              self._cur.execute(sql)
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              raise DatabaseException("SQLite: %s" % (e))
 | 
	
		
			
				|  |  |          self._commit()
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -286,7 +283,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |          to the new version with a designated script.
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          self._cur.execute("PRAGMA TABLE_INFO(NODES)")
 | 
	
		
			
				|  |  | -        if (self._cur.fetchone() is None):
 | 
	
		
			
				|  |  | +        if self._cur.fetchone() is None:
 | 
	
		
			
				|  |  |              # table doesn't exist, create it
 | 
	
		
			
				|  |  |              # SQLite does have constraints implemented at the moment
 | 
	
		
			
				|  |  |              # so datatype will just be a string
 | 
	
	
		
			
				|  | @@ -308,7 +305,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |              self._cur.execute("INSERT INTO DBVERSION VALUES('0.4')")
 | 
	
		
			
				|  |  |              try:
 | 
	
		
			
				|  |  |                  self._con.commit()
 | 
	
		
			
				|  |  | -            except DatabaseException, e:
 | 
	
		
			
				|  |  | +            except DatabaseException, e:  # pragma: no cover
 | 
	
		
			
				|  |  |                  self._con.rollback()
 | 
	
		
			
				|  |  |                  raise e
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -325,7 +322,7 @@ class SQLiteDatabaseNewForm(Database):
 | 
	
		
			
				|  |  |          self._cur.execute(sql, values)
 | 
	
		
			
				|  |  |          try:
 | 
	
		
			
				|  |  |              self._con.commit()
 | 
	
		
			
				|  |  | -        except sqlite.DatabaseError, e:
 | 
	
		
			
				|  |  | +        except sqlite.DatabaseError, e:  # pragma: no cover
 | 
	
		
			
				|  |  |              self._con.rollback()
 | 
	
		
			
				|  |  |              raise DatabaseException(
 | 
	
		
			
				|  |  |                  "SQLite: Error saving key [%s]" % (e))
 |