On 03/21/2012 08:46 PM, Peter Krempa wrote:
This patch adds an error exception if the specification of the test
module from "repos/" ends with a colon (does not specify the module
name) instead of a meaningless backtrace.
---
exception.py | 10 ++++++++++
proxy.py | 4 ++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/exception.py b/exception.py
index 1a6d6f1..eeb899a 100644
--- a/exception.py
+++ b/exception.py
@@ -75,6 +75,16 @@ class FileExist(LibvirtException):
class CaseConfigfileError(LibvirtException):
code = 210
message = "Case config file Error"
+ def __init__(self, errorstr=None):
+ self.errorstr = errorstr
+
+ def __str__(self):
+ return repr(self.errorstr)
+
+ def response(self):
+ self.status = {'code':self.code, 'message':"%s:%s" %
+ (self.message, str(self))}
+ return self.status
The CaseConfigfileError is the subclass of LibvirtException,
so we just raise it with specific error string, we don't need
to overload its method unless the subclass want different
action in the method.
class MissingVariable(LibvirtException):
code = 210
diff --git a/proxy.py b/proxy.py
index aa34d9a..16d498b 100644
--- a/proxy.py
+++ b/proxy.py
@@ -18,6 +18,8 @@
# The proxy examines the list of unique test cases, received from the
# generator and import each test case from appropriate module directory.
+import exception
+
class Proxy(object):
""" The Proxy class is used for getting real function call reference
"""
@@ -86,6 +88,8 @@ class Proxy(object):
# Import recursively module
for component in components[1:]:
+ if component=="":
+ raise exception.CaseConfigfileError("Missing module name after
\":\"")
Raising an exception here make parsing stronger, thanks.
BTW, It's better to use if component == "":
Guannan Ren