Compare commits
2 Commits
8844622f6b
...
12b6966c8a
| Author | SHA1 | Date | |
|---|---|---|---|
| 12b6966c8a | |||
| 03c629545e |
@ -1,7 +1,7 @@
|
||||
"""
|
||||
Module implementing tag related functions and classes.
|
||||
"""
|
||||
from typing import Type, TypeVar
|
||||
from typing import Type, TypeVar, Optional
|
||||
|
||||
TagInst = TypeVar('TagInst', bound='Tag')
|
||||
TagLineInst = TypeVar('TagLineInst', bound='TagLine')
|
||||
@ -103,7 +103,8 @@ class TagLine(str):
|
||||
new_tags.add(t[1])
|
||||
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:
|
||||
- 'tags_or' : matches if this TagLine contains ANY of those tags
|
||||
|
||||
@ -337,3 +337,11 @@ class TestTagLine(CmmTestCase):
|
||||
tags_and = set()
|
||||
tags_not = {Tag('tag2')}
|
||||
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