[libvirt] [test-API PATCH 1/4] filter: new class for filter or extract data

Guannan Ren gren at redhat.com
Wed Apr 11 14:04:13 UTC 2012


    activityfilter.py
---
 activityfilter.py |   74 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)
 create mode 100644 activityfilter.py

diff --git a/activityfilter.py b/activityfilter.py
new file mode 100644
index 0000000..d99d690
--- /dev/null
+++ b/activityfilter.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+#
+# 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
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version. This program is distributed in
+# the hope that it will be useful, but WITHOUT ANY WARRANTY; without
+# even the implied warranties of TITLE, NON-INFRINGEMENT,
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# The GPL text is available in the file COPYING that accompanies this
+# distribution and at <http://www.gnu.org/licenses>.
+#
+
+
+class Filter(object):
+    """filter activity list to form various data list"""
+    def __init__(self, activities_list):
+        self.testcase_keys = []
+        for activity in activities_list:
+            for testcase in activity:
+                testcases_key = testcase.keys()
+                self.testcase_keys += testcases_key
+
+    def unique_testcase_cleansuffix(self):
+        """get a list of module:testcase from activities_list
+           eliminate duplicate items, with 'module:testcase_clean'
+        """
+        keylist_clean = self._keylist_cleanappended_without_sleep()
+        return list(set(keylist_clean))
+
+    def unique_testcases(self):
+        """ get a list of module:testcase from activities_list
+            eliminate duplicate items
+        """
+        keylist = self._keylist_without_sleep_clean()
+        return list(set(keylist))
+
+    def _keylist_without_sleep_clean(self):
+        """ filter out 'clean' and 'sleep' flag
+            to generate a list of testcases
+        """
+        keylist = []
+        for key in self.testcase_keys:
+            key = key.lower()
+            if key == 'clean' or key == 'sleep':
+                continue
+
+            keylist.append(key)
+
+        return keylist
+
+    def _keylist_cleanappended_without_sleep(self):
+        """ remove 'sleep' flag, and append ':_clean' to
+            the previous testcase to form a new element
+        """
+        keylist_clean = []
+        prev_casename = ''
+
+        for key in self.testcase_keys:
+            key = key.lower()
+            if key == 'sleep':
+                continue
+
+            if key == 'clean':
+                keylist_clean.append(prev_casename + ":_clean")
+                continue
+
+            prev_casename = key
+            keylist_clean.append(prev_casename)
+
+        return keylist_clean
-- 
1.7.7.5




More information about the libvir-list mailing list