[libvirt] [test-API PATCH 6/7] parser: Be more specific on mistakes in case files
Guannan Ren
gren at redhat.com
Wed Mar 21 16:45:02 UTC 2012
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
More information about the libvir-list
mailing list