[libvirt] [test-API PATCH 1/5] mapper: don't treat clean flag as a testcase

Guannan Ren gren at redhat.com
Mon Apr 16 06:30:51 UTC 2012


    Original, the clean flag work with previous testcase
    to form a separate call request to generator.
    the patch will append ":clean" to previous testcase
    to mark that the previous testcase needs to clean after running.
    It make counting of testcase number easier.
    And rename the function and variable, add more comments
---
 mapper.py |   71 +++++++++++++++++++++++++++++-------------------------------
 1 files changed, 34 insertions(+), 37 deletions(-)

diff --git a/mapper.py b/mapper.py
index c2c44da..5cf12e3 100644
--- a/mapper.py
+++ b/mapper.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
@@ -17,8 +17,6 @@
 # the purpose is to get useful information about a testrun.
 #
 
-import copy
-
 class Mapper(object):
 
     def __init__(self, testcases_list):
@@ -27,54 +25,53 @@ class Mapper(object):
     def module_casename_func_map(self):
         """ generate a new list of dictionary
             change key from module:casename to module:casename:func
+            if clean flag is set, key will be module:casename:func:clean
         """
-        tripped_cases_list = []
-        prev_testcasename = ''
-        prev_testcases_params = ''
+        new_case_list = []
 
         for testcase in self.testcases_list:
-            tripped_case = {}
-            testcase_name = testcase.keys()[0]
-            if ":" in testcase_name:
-                casename = testcase_name.split(":")[1]
+            case = {}
+            mod_case = testcase.keys()[0]
+            if ":" in mod_case:
+                casename = mod_case.split(":")[1]
                 func = casename
 
-            if testcase_name == 'sleep':
-                tripped_cases_list.append(testcase)
+            if mod_case == 'sleep':
+                new_case_list.append(testcase)
                 continue
 
-            if testcase_name == 'clean':
-                func = casename + "_clean"
-                tripped_case[prev_testcasename + ":" + func] = prev_testcases_params
-                tripped_cases_list.append(tripped_case)
-                continue
+            if mod_case == 'clean':
+                if not new_case_list:
+                    return None
 
-            testcases_params = testcase.values()[0]
-            tripped_case[testcase_name + ":" + func] = testcases_params
-            tripped_cases_list.append(tripped_case)
+                previous_case = new_case_list.pop()
+                key = previous_case.keys()[0] + ':clean'
+                case[key] = previous_case.values()[0]
+                new_case_list.append(case)
+                continue
 
-            prev_testcasename = testcase_name
-            prev_testcases_params = testcases_params
+            cases_params = testcase.values()[0]
+            case[mod_case + ":" + func] = cases_params
+            new_case_list.append(case)
 
-        return tripped_cases_list
+        return new_case_list
 
-    def module_casename_cleanfunc_map(self):
-        """generate a new data format
-           keys of dictionay are of module:casename:casename_clean
+    def module_casename_func_noflag(self):
+        """remove sleep and clean data
+           generate a new data format
         """
-        tripped_cases_list = []
+        new_case_list = []
         for testcase in self.testcases_list:
-            tripped_case = {}
-            testcase_name = testcase.keys()[0]
-            if ":" in testcase_name:
-                casename = testcase_name.split(":")[1]
-                func = casename + "_clean"
+            case = {}
+            mod_case = testcase.keys()[0]
 
-            if testcase_name == 'sleep' or testcase_name == 'clean':
+            if mod_case == 'sleep' or mod_case == 'clean':
                 continue
 
-            testcases_params = testcase.values()[0]
-            tripped_case[testcase_name + ":" + func] = testcases_params
-            tripped_cases_list.append(tripped_case)
+            func = mod_case.split(":")[1]
+
+            cases_params = testcase.values()[0]
+            case[mod_case + ":" + func] = cases_params
+            new_case_list.append(case)
 
-        return tripped_cases_list
+        return new_case_list
-- 
1.7.7.5




More information about the libvir-list mailing list