Compare commits
2 Commits
8844622f6b
...
12b6966c8a
| Author | SHA1 | Date | |
|---|---|---|---|
| 12b6966c8a | |||
| 03c629545e |
@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
Module implementing tag related functions and classes.
|
Module implementing tag related functions and classes.
|
||||||
"""
|
"""
|
||||||
from typing import Type, TypeVar
|
from typing import Type, TypeVar, Optional
|
||||||
|
|
||||||
TagInst = TypeVar('TagInst', bound='Tag')
|
TagInst = TypeVar('TagInst', bound='Tag')
|
||||||
TagLineInst = TypeVar('TagLineInst', bound='TagLine')
|
TagLineInst = TypeVar('TagLineInst', bound='TagLine')
|
||||||
@ -103,7 +103,8 @@ class TagLine(str):
|
|||||||
new_tags.add(t[1])
|
new_tags.add(t[1])
|
||||||
return self.from_set(set(sorted(new_tags)))
|
return self.from_set(set(sorted(new_tags)))
|
||||||
|
|
||||||
def match_tags(self, tags_or: set[Tag], tags_and: set[Tag], tags_not: set[Tag]) -> bool:
|
def match_tags(self, tags_or: Optional[set[Tag]], tags_and: Optional[set[Tag]],
|
||||||
|
tags_not: Optional[set[Tag]]) -> bool:
|
||||||
"""
|
"""
|
||||||
Checks if the current TagLine matches the given tag requirements:
|
Checks if the current TagLine matches the given tag requirements:
|
||||||
- 'tags_or' : matches if this TagLine contains ANY of those tags
|
- 'tags_or' : matches if this TagLine contains ANY of those tags
|
||||||
|
|||||||
@ -337,3 +337,11 @@ class TestTagLine(CmmTestCase):
|
|||||||
tags_and = set()
|
tags_and = set()
|
||||||
tags_not = {Tag('tag2')}
|
tags_not = {Tag('tag2')}
|
||||||
self.assertFalse(tagline.match_tags(tags_or, tags_and, tags_not))
|
self.assertFalse(tagline.match_tags(tags_or, tags_and, tags_not))
|
||||||
|
|
||||||
|
# Test case 8: 'tags_or' and 'tags_and' are None, match all tags
|
||||||
|
tags_not = set()
|
||||||
|
self.assertTrue(tagline.match_tags(None, None, tags_not))
|
||||||
|
|
||||||
|
# Test case 9: 'tags_or' and 'tags_and' are None, match all tags except excluded tags
|
||||||
|
tags_not = {Tag('tag2')}
|
||||||
|
self.assertFalse(tagline.match_tags(None, None, tags_not))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user