Re: [libvirt] [test-API PATCH 2/2] proxy: import each testcase file only once, initialize proxy once

2012-04-16 Thread Guannan Ren

On 04/16/2012 03:54 PM, Martin Kletzander wrote:

On 04/16/2012 08:15 AM, Guannan Ren wrote:

 *libvirt-test-api.py: initialize proxy module only once
 *casecfgcheck.py: use proxy object rather than initialize it by
   itself
 *proxy.py: make get_func_call_dict more flexible
---
  casecfgcheck.py |5 +
  libvirt-test-api.py |   12 +---
  proxy.py|   22 ++
  3 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/casecfgcheck.py b/casecfgcheck.py
index 40d7c6e..9a4f8e6 100644
--- a/casecfgcheck.py
+++ b/casecfgcheck.py
@@ -18,13 +18,10 @@ import proxy

  class CaseCfgCheck(object):
  """validate the options in testcase config file"""
-def __init__(self, unique_testcases, activities_list):
-self.unique_testcases = unique_testcases
-
+def __init__(self, proxy_obj, activities_list):
  # XXX to check the first testcase list in activities_list
  self.activity = activities_list[0]

-proxy_obj = proxy.Proxy(self.unique_testcases)
  self.case_params = proxy_obj.get_params_variables()

  def check(self):
diff --git a/libvirt-test-api.py b/libvirt-test-api.py
index 385b52d..7b38aaa 100644
--- a/libvirt-test-api.py
+++ b/libvirt-test-api.py
@@ -112,20 +112,18 @@ class Main(object):

  unique_testcases = filterobj.unique_testcases()

+# __import__ TESTCASE.py once for duplicate testcase names
+proxy_obj = proxy.Proxy(unique_testcases)
+
  # check the options to each testcase in case config file
-casechk = CaseCfgCheck(unique_testcases, activities_list)
+casechk = CaseCfgCheck(proxy_obj, activities_list)
  if casechk.check():
  return 1

  # get a list of unique testcase
  # with 'clean' flag appended to its previous testcase
  unique_testcase_keys = filterobj.unique_testcase_cleansuffix()
-
-# call and initilize proxy component to
-# get a list of reference of testcases
-proxy_obj = proxy.Proxy(unique_testcase_keys)
-
-cases_func_ref_dict = proxy_obj.get_func_call_dict()
+cases_func_ref_dict = 
proxy_obj.get_func_call_dict(unique_testcase_keys)

  # create a null list, then, initilize generator to
  # get the callable testcase function
diff --git a/proxy.py b/proxy.py
index bc82a84..49a0420 100644
--- a/proxy.py
+++ b/proxy.py
@@ -1,6 +1,6 @@
  #!/usr/bin/env python
  #
-# libvirt-test-API is copyright 2010 Red Hat, Inc.
+# libvirt-test-API is copyright 2010, 2012 Red Hat, Inc.
  #
  # libvirt-test-API is free software: you can redistribute it and/or modify it
  # under the terms of the GNU General Public License as published by
@@ -37,12 +37,13 @@ class Proxy(object):
  casename = elements[1]

  casemod_ref = self.get_call_dict(module, casename)
-self.testcase_ref_dict[testcase_name] = casemod_ref
+modcase = module + ':' + casename
+self.testcase_ref_dict[modcase] = casemod_ref

-def get_func_call_dict(self):
-"""Return running function reference dictionary """
+def get_func_call_dict(self, unique_testcase_keys):
+"""get reference to functions defined in testcase file """
  func_dict = {}
-for testcase_name in self.testcases_names:
+for testcase_name in unique_testcase_keys:
  # Get module, casename
  elements = testcase_name.split(':')
  module = elements[0]
@@ -55,16 +56,21 @@ class Proxy(object):
  flag = elements[2]
  func = casename + flag

-casemod_ref = self.testcase_ref_dict[testcase_name]
+# use modcase key to get the reference to corresponding
+# testcase module
+modcase = module + ':' + casename
+casemod_ref = self.testcase_ref_dict[modcase]
  var_func_names = dir(casemod_ref)

-key = module + ':' + casename + ':' + func
+key = modcase + ':' + func
+# check if the expected function is present in
+# the list of string name from dir()
  if func in var_func_names:
  func_ref = getattr(casemod_ref, func)
  func_dict[key] = func_ref
  else:
  raise exception.TestCaseError("function %s not found in %s" % 
\
-  (func, testcase_name))
+  (func, modcase))
  return func_dict

  def get_clearfunc_call_dict(self):

ACK both.

Martin

P.S.: This is very useful, I don't have to type it manually =)



   Thanks and pushed.

   Guannan Ren

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [test-API PATCH 2/2] proxy: import each testcase file only once, initialize proxy once

2012-04-16 Thread Martin Kletzander
On 04/16/2012 08:15 AM, Guannan Ren wrote:
> *libvirt-test-api.py: initialize proxy module only once
> *casecfgcheck.py: use proxy object rather than initialize it by
>   itself
> *proxy.py: make get_func_call_dict more flexible
> ---
>  casecfgcheck.py |5 +
>  libvirt-test-api.py |   12 +---
>  proxy.py|   22 ++
>  3 files changed, 20 insertions(+), 19 deletions(-)
> 
> diff --git a/casecfgcheck.py b/casecfgcheck.py
> index 40d7c6e..9a4f8e6 100644
> --- a/casecfgcheck.py
> +++ b/casecfgcheck.py
> @@ -18,13 +18,10 @@ import proxy
>  
>  class CaseCfgCheck(object):
>  """validate the options in testcase config file"""
> -def __init__(self, unique_testcases, activities_list):
> -self.unique_testcases = unique_testcases
> -
> +def __init__(self, proxy_obj, activities_list):
>  # XXX to check the first testcase list in activities_list
>  self.activity = activities_list[0]
>  
> -proxy_obj = proxy.Proxy(self.unique_testcases)
>  self.case_params = proxy_obj.get_params_variables()
>  
>  def check(self):
> diff --git a/libvirt-test-api.py b/libvirt-test-api.py
> index 385b52d..7b38aaa 100644
> --- a/libvirt-test-api.py
> +++ b/libvirt-test-api.py
> @@ -112,20 +112,18 @@ class Main(object):
>  
>  unique_testcases = filterobj.unique_testcases()
>  
> +# __import__ TESTCASE.py once for duplicate testcase names
> +proxy_obj = proxy.Proxy(unique_testcases)
> +
>  # check the options to each testcase in case config file
> -casechk = CaseCfgCheck(unique_testcases, activities_list)
> +casechk = CaseCfgCheck(proxy_obj, activities_list)
>  if casechk.check():
>  return 1
>  
>  # get a list of unique testcase
>  # with 'clean' flag appended to its previous testcase
>  unique_testcase_keys = filterobj.unique_testcase_cleansuffix()
> -
> -# call and initilize proxy component to
> -# get a list of reference of testcases
> -proxy_obj = proxy.Proxy(unique_testcase_keys)
> -
> -cases_func_ref_dict = proxy_obj.get_func_call_dict()
> +cases_func_ref_dict = 
> proxy_obj.get_func_call_dict(unique_testcase_keys)
>  
>  # create a null list, then, initilize generator to
>  # get the callable testcase function
> diff --git a/proxy.py b/proxy.py
> index bc82a84..49a0420 100644
> --- a/proxy.py
> +++ b/proxy.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/env python
>  #
> -# libvirt-test-API is copyright 2010 Red Hat, Inc.
> +# libvirt-test-API is copyright 2010, 2012 Red Hat, Inc.
>  #
>  # libvirt-test-API is free software: you can redistribute it and/or modify it
>  # under the terms of the GNU General Public License as published by
> @@ -37,12 +37,13 @@ class Proxy(object):
>  casename = elements[1]
>  
>  casemod_ref = self.get_call_dict(module, casename)
> -self.testcase_ref_dict[testcase_name] = casemod_ref
> +modcase = module + ':' + casename
> +self.testcase_ref_dict[modcase] = casemod_ref
>  
> -def get_func_call_dict(self):
> -"""Return running function reference dictionary """
> +def get_func_call_dict(self, unique_testcase_keys):
> +"""get reference to functions defined in testcase file """
>  func_dict = {}
> -for testcase_name in self.testcases_names:
> +for testcase_name in unique_testcase_keys:
>  # Get module, casename
>  elements = testcase_name.split(':')
>  module = elements[0]
> @@ -55,16 +56,21 @@ class Proxy(object):
>  flag = elements[2]
>  func = casename + flag
>  
> -casemod_ref = self.testcase_ref_dict[testcase_name]
> +# use modcase key to get the reference to corresponding
> +# testcase module
> +modcase = module + ':' + casename
> +casemod_ref = self.testcase_ref_dict[modcase]
>  var_func_names = dir(casemod_ref)
>  
> -key = module + ':' + casename + ':' + func
> +key = modcase + ':' + func
> +# check if the expected function is present in
> +# the list of string name from dir()
>  if func in var_func_names:
>  func_ref = getattr(casemod_ref, func)
>  func_dict[key] = func_ref
>  else:
>  raise exception.TestCaseError("function %s not found in %s" 
> % \
> -  (func, testcase_name))
> +  (func, modcase))
>  return func_dict
>  
>  def get_clearfunc_call_dict(self):

ACK both.

Martin

P.S.: This is very useful, I don't have to type it manually =)

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [test-API PATCH 2/2] proxy: import each testcase file only once, initialize proxy once

2012-04-15 Thread Guannan Ren
*libvirt-test-api.py: initialize proxy module only once
*casecfgcheck.py: use proxy object rather than initialize it by
  itself
*proxy.py: make get_func_call_dict more flexible
---
 casecfgcheck.py |5 +
 libvirt-test-api.py |   12 +---
 proxy.py|   22 ++
 3 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/casecfgcheck.py b/casecfgcheck.py
index 40d7c6e..9a4f8e6 100644
--- a/casecfgcheck.py
+++ b/casecfgcheck.py
@@ -18,13 +18,10 @@ import proxy
 
 class CaseCfgCheck(object):
 """validate the options in testcase config file"""
-def __init__(self, unique_testcases, activities_list):
-self.unique_testcases = unique_testcases
-
+def __init__(self, proxy_obj, activities_list):
 # XXX to check the first testcase list in activities_list
 self.activity = activities_list[0]
 
-proxy_obj = proxy.Proxy(self.unique_testcases)
 self.case_params = proxy_obj.get_params_variables()
 
 def check(self):
diff --git a/libvirt-test-api.py b/libvirt-test-api.py
index 385b52d..7b38aaa 100644
--- a/libvirt-test-api.py
+++ b/libvirt-test-api.py
@@ -112,20 +112,18 @@ class Main(object):
 
 unique_testcases = filterobj.unique_testcases()
 
+# __import__ TESTCASE.py once for duplicate testcase names
+proxy_obj = proxy.Proxy(unique_testcases)
+
 # check the options to each testcase in case config file
-casechk = CaseCfgCheck(unique_testcases, activities_list)
+casechk = CaseCfgCheck(proxy_obj, activities_list)
 if casechk.check():
 return 1
 
 # get a list of unique testcase
 # with 'clean' flag appended to its previous testcase
 unique_testcase_keys = filterobj.unique_testcase_cleansuffix()
-
-# call and initilize proxy component to
-# get a list of reference of testcases
-proxy_obj = proxy.Proxy(unique_testcase_keys)
-
-cases_func_ref_dict = proxy_obj.get_func_call_dict()
+cases_func_ref_dict = 
proxy_obj.get_func_call_dict(unique_testcase_keys)
 
 # create a null list, then, initilize generator to
 # get the callable testcase function
diff --git a/proxy.py b/proxy.py
index bc82a84..49a0420 100644
--- a/proxy.py
+++ b/proxy.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-# libvirt-test-API is copyright 2010 Red Hat, Inc.
+# libvirt-test-API is copyright 2010, 2012 Red Hat, Inc.
 #
 # libvirt-test-API is free software: you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -37,12 +37,13 @@ class Proxy(object):
 casename = elements[1]
 
 casemod_ref = self.get_call_dict(module, casename)
-self.testcase_ref_dict[testcase_name] = casemod_ref
+modcase = module + ':' + casename
+self.testcase_ref_dict[modcase] = casemod_ref
 
-def get_func_call_dict(self):
-"""Return running function reference dictionary """
+def get_func_call_dict(self, unique_testcase_keys):
+"""get reference to functions defined in testcase file """
 func_dict = {}
-for testcase_name in self.testcases_names:
+for testcase_name in unique_testcase_keys:
 # Get module, casename
 elements = testcase_name.split(':')
 module = elements[0]
@@ -55,16 +56,21 @@ class Proxy(object):
 flag = elements[2]
 func = casename + flag
 
-casemod_ref = self.testcase_ref_dict[testcase_name]
+# use modcase key to get the reference to corresponding
+# testcase module
+modcase = module + ':' + casename
+casemod_ref = self.testcase_ref_dict[modcase]
 var_func_names = dir(casemod_ref)
 
-key = module + ':' + casename + ':' + func
+key = modcase + ':' + func
+# check if the expected function is present in
+# the list of string name from dir()
 if func in var_func_names:
 func_ref = getattr(casemod_ref, func)
 func_dict[key] = func_ref
 else:
 raise exception.TestCaseError("function %s not found in %s" % \
-  (func, testcase_name))
+  (func, modcase))
 return func_dict
 
 def get_clearfunc_call_dict(self):
-- 
1.7.7.5

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list