diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2014-11-04 10:11:22 +0100 |
|---|---|---|
| committer | serpilliere <serpilliere@users.noreply.github.com> | 2014-11-04 10:11:22 +0100 |
| commit | b1225bc72bebdf0ac0b1ac83509e122574b2c7cc (patch) | |
| tree | 242c4af3d8da10a14e83e9756185bf2f5cd53f20 /test/utils/testset.py | |
| parent | b4745bf9980db9aee566a16f3725a9bd2d887860 (diff) | |
| parent | 9d72be933fb34137fd90279c14b52f1e02470ac1 (diff) | |
| download | miasm-b1225bc72bebdf0ac0b1ac83509e122574b2c7cc.tar.gz miasm-b1225bc72bebdf0ac0b1ac83509e122574b2c7cc.zip | |
Merge pull request #2 from commial/feature-test-tags
[Feature] Tests tags
Diffstat (limited to 'test/utils/testset.py')
| -rw-r--r-- | test/utils/testset.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/utils/testset.py b/test/utils/testset.py index 5c508836..94e5fe1f 100644 --- a/test/utils/testset.py +++ b/test/utils/testset.py @@ -244,3 +244,31 @@ class TestSet(object): def tests_passed(self): "Return a non zero value if at least one test failed" return self.errorcode + + def filter_tags(self, include_tags=None, exclude_tags=None): + """Filter tests by tags + @include_tags: list of tags' name (whitelist) + @exclude_tags: list of tags' name (blacklist) + @include_tags and @exclude_tags cannot be used together""" + + if include_tags and exclude_tags: + raise ValueError("Include and Exclude cannot be used together") + + new_testset_include = [] + new_testset_exclude = list(self.tests) + + # Update include and exclude lists + for index, test in enumerate(self.tests): + for tag in test.tags: + if exclude_tags and tag in exclude_tags: + new_testset_exclude.remove(test) + break + if include_tags and tag in include_tags: + new_testset_include.append(test) + break + + # Update testset list + if include_tags: + self.tests = new_testset_include + elif exclude_tags: + self.tests = new_testset_exclude |