Handle reasons that are None.

Reviewed in https://codereview.appspot.com/7396043/.
diff --git a/apiclient/errors.py b/apiclient/errors.py
index 2e60515..c3d35bc 100644
--- a/apiclient/errors.py
+++ b/apiclient/errors.py
@@ -49,6 +49,8 @@
       reason = data['error']['message']
     except (ValueError, KeyError):
       pass
+    if reason is None:
+      reason = ''
     return reason
 
   def __repr__(self):
diff --git a/tests/test_errors.py b/tests/test_errors.py
index c45ce35..57e82e7 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -91,3 +91,9 @@
     resp, content = fake_response('}NOT OK', {'status':'400'})
     error = HttpError(resp, content)
     self.assertEqual(str(error), '<HttpError 400 "Ok">')
+
+  def test_missing_reason(self):
+    """Test an empty dict with a missing resp.reason."""
+    resp, content = fake_response('}NOT OK', {'status':'400'}, reason=None)
+    error = HttpError(resp, content)
+    self.assertEqual(str(error), '<HttpError 400 "">')