Browse Source

wxGUI: handle CalledModuleError coming from checking db connection in d.vect dialog

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@62691 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 10 years ago
parent
commit
5c5ba25687
1 changed files with 8 additions and 5 deletions
  1. 8 5
      gui/wxpython/gui_core/gselect.py

+ 8 - 5
gui/wxpython/gui_core/gselect.py

@@ -52,6 +52,7 @@ from core import globalvar
 
 
 import grass.script as grass
 import grass.script as grass
 from   grass.script import task as gtask
 from   grass.script import task as gtask
+from grass.exceptions import CalledModuleError
 try:
 try:
     from grass.pygrass import messages
     from grass.pygrass import messages
 except ImportError as e:
 except ImportError as e:
@@ -727,12 +728,14 @@ class VectorDBInfo:
 
 
     def _CheckDBConnection(self):
     def _CheckDBConnection(self):
         """Check DB connection"""
         """Check DB connection"""
-        # if map is not defined (happens with vnet initialization)
-        if not self.map:
-            return False
         nuldev = file(os.devnull, 'w+')
         nuldev = file(os.devnull, 'w+')
-        self.layers = grass.vector_db(map = self.map, stderr = nuldev)
-        nuldev.close()
+        # if map is not defined (happens with vnet initialization) or it doesn't exist
+        try:
+            self.layers = grass.vector_db(map=self.map, stderr=nuldev)
+        except CalledModuleError:
+            return False
+        finally:  # always close nuldev
+            nuldev.close()
 
 
         return bool(len(self.layers.keys()) > 0)
         return bool(len(self.layers.keys()) > 0)