Browse Source

Don't use asserts for error handling

AJ Jordan 4 years ago
parent
commit
f3305b8288
1 changed files with 17 additions and 4 deletions
  1. 17 4
      qubesmanager/global_settings.py

+ 17 - 4
qubesmanager/global_settings.py

@@ -45,14 +45,27 @@ def _run_qrexec_repo(service, arg=''):
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE
     )
-    assert not p.stderr
-    assert p.returncode == 0
+    if p.stderr:
+        raise RuntimeError('qrexec call stderr was not empty', stderr=p.stderr)
+    if p.returncode != 0:
+        raise RuntimeError('qrexec call exited with non-zero return code',
+                           returncode=p.returncode)
     return p.stdout.decode('utf-8')
 
 def _manage_repos(repolist, action):
     for i in repolist:
-        result = _run_qrexec_repo('qubes.repos.' + action, i)
-        assert result == 'ok\n'
+        try:
+            result = _run_qrexec_repo('qubes.repos.' + action, i)
+            if result != 'ok\n':
+                raise RuntimeError(
+                    'qrexec call stdout did not contain "ok" as expected',
+                    result=result)
+        except RuntimeError as ex:
+            QtGui.QMessageBox.warning(
+                None,
+                self.tr("ERROR!"),
+                self.tr("Error managing repository settings: {e}".format(
+                    e=str(ex))))
 
 def _handle_dom0_updates_combobox(idx):
     idx += 1