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

Martin Kletzander mkletzan at redhat.com
Thu Apr 12 11:24:32 UTC 2012


On 04/11/2012 04:04 PM, Guannan Ren wrote:
>     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

This looks ok, ACK.
I'm looking at the rest now.

Martin




More information about the libvir-list mailing list