From 0224d31333a137e6d8ca7a0cddf1376e48c598c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 20 May 2008 10:15:26 +0200 Subject: [PATCH] Raise exption in browse record when field doesn't exist Log traceback on abort_response if verbose is set --- trytond/netsvc.py | 6 ++++++ trytond/osv/orm.py | 10 +++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/trytond/netsvc.py b/trytond/netsvc.py index e15b522bca..7f5eee9467 100644 --- a/trytond/netsvc.py +++ b/trytond/netsvc.py @@ -46,6 +46,12 @@ class Service(object): self.method[method.__name__] = method def abort_response(self, description, origin, details): + if CONFIG['verbose']: + tb_s = reduce(lambda x, y: x+y, traceback.format_exception( + sys.exc_type, sys.exc_value, sys.exc_traceback)) + logger = Logger() + logger.notify_channel("web-services", LOG_ERROR, + 'Exception in call: \n' + tb_s) raise Exception("%s -- %s\n\n%s" % (origin, description, details)) diff --git a/trytond/osv/orm.py b/trytond/osv/orm.py index 31961a3160..b36dfefc3f 100644 --- a/trytond/osv/orm.py +++ b/trytond/osv/orm.py @@ -75,13 +75,9 @@ class BrowseRecord(object): elif hasattr(self._table, name): return getattr(self._table, name) else: - logger = Logger() - stack = ''.join(traceback.format_stack()) - logger.notify_channel('orm', LOG_ERROR, - "Programming error: field '%s' " \ - "does not exist in object '%s'!\n%s" % \ - (name, self._table._name, stack)) - return False + raise ExceptORM('Error', 'Programming error: field "%s" ' \ + 'does not exist in object "%s"!' \ + % (name, self._table._name)) # if the field is a classic one or a many2one, # we'll fetch all classic and many2one fields