mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Preserve order when tag rule replacement contains multiple tags
This commit is contained in:
parent
c9d4221e68
commit
5a488dc7fd
@ -63,7 +63,7 @@ def apply_rules(tag, rules):
|
|||||||
self_added = True
|
self_added = True
|
||||||
else:
|
else:
|
||||||
replacement_tags.append(rtag)
|
replacement_tags.append(rtag)
|
||||||
tags.extendleft(replacement_tags)
|
tags.extendleft(reversed(replacement_tags))
|
||||||
else:
|
else:
|
||||||
if icu_lower(tag) == ltag:
|
if icu_lower(tag) == ltag:
|
||||||
# Case change or self replacement
|
# Case change or self replacement
|
||||||
@ -104,9 +104,9 @@ def test():
|
|||||||
rules = [{'action':'replace', 'query':'(.)1', 'match_type':'matches', 'replace':r'\g<1>2'}]
|
rules = [{'action':'replace', 'query':'(.)1', 'match_type':'matches', 'replace':r'\g<1>2'}]
|
||||||
assert map_tags(['t1', 'x1'], rules) == ['t2', 'x2']
|
assert map_tags(['t1', 'x1'], rules) == ['t2', 'x2']
|
||||||
rules = [{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':'t2, t3'}]
|
rules = [{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':'t2, t3'}]
|
||||||
assert map_tags(['t1', 'x1'], rules) == ['t3', 't2', 'x1']
|
assert map_tags(['t1', 'x1'], rules) == ['t2', 't3', 'x1']
|
||||||
rules = [{'action':'replace', 'query':'(.)1', 'match_type':'matches', 'replace':r'\g<1>2,3'}]
|
rules = [{'action':'replace', 'query':'(.)1', 'match_type':'matches', 'replace':r'\g<1>2,3'}]
|
||||||
assert map_tags(['t1', 'x1'], rules) == ['3', 't2', 'x2']
|
assert map_tags(['t1', 'x1'], rules) == ['t2', '3', 'x2']
|
||||||
rules = [
|
rules = [
|
||||||
{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':r't2,t3'},
|
{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':r't2,t3'},
|
||||||
{'action':'remove', 'query':'t2', 'match_type':'one_of'},
|
{'action':'remove', 'query':'t2', 'match_type':'one_of'},
|
||||||
@ -118,7 +118,7 @@ def test():
|
|||||||
{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':'t2'},
|
{'action':'replace', 'query':'t1', 'match_type':'one_of', 'replace':'t2'},
|
||||||
{'action':'replace', 'query':'t2', 'match_type':'one_of', 'replace':'t1'},
|
{'action':'replace', 'query':'t2', 'match_type':'one_of', 'replace':'t1'},
|
||||||
]
|
]
|
||||||
assert set(map_tags(['t1', 't2'], rules)) == {'t1', 't2'}
|
assert map_tags(['t1', 't2'], rules) == ['t1', 't2']
|
||||||
rules = [
|
rules = [
|
||||||
{'action':'replace', 'query':'a', 'match_type':'one_of', 'replace':'A'},
|
{'action':'replace', 'query':'a', 'match_type':'one_of', 'replace':'A'},
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user