From 5123af1f2dbcb585f3ff16b7c73097a6511b7000 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 18 Dec 2010 09:01:56 -0600 Subject: [PATCH 1/1] Trying to provide more helpful error messages on failed calls --- src/backends/gvoice/gvoice.py | 32 +++++++++++++++++++------------- src/util/qui_utils.py | 1 + 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/backends/gvoice/gvoice.py b/src/backends/gvoice/gvoice.py index 716b7b9..36f4ac1 100755 --- a/src/backends/gvoice/gvoice.py +++ b/src/backends/gvoice/gvoice.py @@ -791,9 +791,27 @@ class GVoiceBackend(object): def _parse_with_validation(self, page): json = parse_json(page) - validate_response(json) + self._validate_response(json) return json + def _validate_response(self, response): + """ + Validates that the JSON response is A-OK + """ + try: + assert response is not None, "Response not provided" + assert 'ok' in response, "Response lacks status" + assert response['ok'], "Response not good" + except AssertionError: + try: + if response["data"]["code"] == 20: + raise RuntimeError( +"""Ambiguous error 20 returned by Google Voice. +Please verify you have configured your callback number (currently "%s"). If it is configured some other suspected causes are: non-verified callback numbers, and Gizmo5 callback numbers.""" % self._callbackNumber) + except KeyError: + pass + raise RuntimeError('There was a problem with GV: %s' % response) + _UNESCAPE_ENTITIES = { """: '"', @@ -895,18 +913,6 @@ def extract_payload(flatXml): return jsonTree, flatHtml -def validate_response(response): - """ - Validates that the JSON response is A-OK - """ - try: - assert response is not None, "Response not provided" - assert 'ok' in response, "Response lacks status" - assert response['ok'], "Response not good" - except AssertionError: - raise RuntimeError('There was a problem with GV: %s' % response) - - def guess_phone_type(number): if number.startswith("747") or number.startswith("1747") or number.startswith("+1747"): return GVoiceBackend.PHONE_TYPE_GIZMO diff --git a/src/util/qui_utils.py b/src/util/qui_utils.py index 41ed1bd..de5d1fb 100644 --- a/src/util/qui_utils.py +++ b/src/util/qui_utils.py @@ -116,6 +116,7 @@ class ErrorDisplay(object): self._message = QtGui.QLabel() self._message.setText("Boo") self._message.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + self._message.setWordWrap(True) closeIcon = get_theme_icon(("window-close", "general_close", "gtk-close"), self._SENTINEL_ICON) if closeIcon is not self._SENTINEL_ICON: -- 1.7.9.5