Make error messages look a little nicer

This commit is contained in:
Garrett Holmstrom
2013-02-19 22:13:01 -08:00
parent fd07b3274b
commit 9191f28fa6
3 changed files with 16 additions and 4 deletions

View File

@@ -206,7 +206,16 @@ class BaseCommand(object):
try:
cmd = cls(_do_cli=True)
except Exception as err:
print >> sys.stderr, 'error:', err.message
if isinstance(err, EnvironmentError):
# These don't have regular 'message' attributes, and they occur
# frequently enough they we handle them specially.
if hasattr(err, 'filename'):
print >> sys.stderr, 'error:', err.strerror + ':', \
err.filename
else:
print >> sys.stderr, 'error:', err.strerror
else:
print >> sys.stderr, 'error:', err.message or str(err)
# Since we don't even have a config file to consult our options for
# determining when debugging is on are limited to what we got at
# the command line.

View File

@@ -57,5 +57,7 @@ class ServerError(Exception):
return self.response.text or ''
def __str__(self):
return '({code}) {msg}'.format(code=self.status_code,
msg=(self.message or ''))
s_bits = [self.__class__.__name__ + ':', self.status_code]
if self.message:
s_bits.append(self.message)
return ' '.join(s_bits)

View File

@@ -205,7 +205,8 @@ class BaseRequest(BaseCommand):
def handle_cli_exception(self, err):
if isinstance(err, ServerError):
print >> sys.stderr, 'error:', str(err)
print >> sys.stderr, 'error ({0}): {1}'.format(
getattr(err, 'code', err.status_code), err.message)
if self.debug:
raise
sys.exit(1)