mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a test for ensure_prefix
This commit is contained in:
parent
0ae246c0c1
commit
5e53d334e6
@ -133,8 +133,8 @@ def read_prefixes(root):
|
|||||||
def expand_prefix(raw, prefixes):
|
def expand_prefix(raw, prefixes):
|
||||||
return regex(r'(\S+)\s*:\s*(\S+)').sub(lambda m:(prefixes.get(m.group(1), m.group(1)) + ':' + m.group(2)), raw)
|
return regex(r'(\S+)\s*:\s*(\S+)').sub(lambda m:(prefixes.get(m.group(1), m.group(1)) + ':' + m.group(2)), raw)
|
||||||
|
|
||||||
def ensure_prefix(root, prefixes, prefix, value):
|
def ensure_prefix(root, prefixes, prefix, value=None):
|
||||||
prefixes[prefix] = value
|
prefixes[prefix] = value or reserved_prefixes[prefix]
|
||||||
prefixes = {k:v for k, v in prefixes.iteritems() if reserved_prefixes.get(k) != v}
|
prefixes = {k:v for k, v in prefixes.iteritems() if reserved_prefixes.get(k) != v}
|
||||||
if prefixes:
|
if prefixes:
|
||||||
root.set('prefix', ' '.join('%s: %s' % (k, v) for k, v in prefixes.iteritems()))
|
root.set('prefix', ' '.join('%s: %s' % (k, v) for k, v in prefixes.iteritems()))
|
||||||
@ -380,7 +380,7 @@ def read_authors(root, prefixes, refines):
|
|||||||
return uniq(roled_authors or unroled_authors)
|
return uniq(roled_authors or unroled_authors)
|
||||||
|
|
||||||
def set_authors(root, prefixes, refines, authors):
|
def set_authors(root, prefixes, refines, authors):
|
||||||
ensure_prefix(root, prefixes, 'marc', reserved_prefixes['marc'])
|
ensure_prefix(root, prefixes, 'marc')
|
||||||
for item in XPath('./opf:metadata/dc:creator')(root):
|
for item in XPath('./opf:metadata/dc:creator')(root):
|
||||||
props = properties_for_id_with_scheme(item.get('id'), prefixes, refines)
|
props = properties_for_id_with_scheme(item.get('id'), prefixes, refines)
|
||||||
role = props.get('role')
|
role = props.get('role')
|
||||||
|
@ -13,7 +13,7 @@ from calibre.ebooks.metadata.opf3 import (
|
|||||||
parse_prefixes, reserved_prefixes, expand_prefix, read_identifiers,
|
parse_prefixes, reserved_prefixes, expand_prefix, read_identifiers,
|
||||||
read_metadata, set_identifiers, XPath, set_application_id, read_title,
|
read_metadata, set_identifiers, XPath, set_application_id, read_title,
|
||||||
read_refines, set_title, read_title_sort, read_languages, set_languages,
|
read_refines, set_title, read_title_sort, read_languages, set_languages,
|
||||||
read_authors, Author, set_authors
|
read_authors, Author, set_authors, ensure_prefix, read_prefixes
|
||||||
)
|
)
|
||||||
|
|
||||||
TEMPLATE = '''<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">{metadata}</metadata></package>''' # noqa
|
TEMPLATE = '''<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">{metadata}</metadata></package>''' # noqa
|
||||||
@ -35,6 +35,10 @@ class TestOPF3(unittest.TestCase):
|
|||||||
('xxx', 'xxx'),
|
('xxx', 'xxx'),
|
||||||
):
|
):
|
||||||
self.ae(expand_prefix(raw, reserved_prefixes), expanded)
|
self.ae(expand_prefix(raw, reserved_prefixes), expanded)
|
||||||
|
root = self.get_opf()
|
||||||
|
ensure_prefix(root, read_prefixes(root), 'calibre', 'https://calibre-ebook.com')
|
||||||
|
ensure_prefix(root, read_prefixes(root), 'marc', reserved_prefixes['marc'])
|
||||||
|
self.ae(parse_prefixes(root.get('prefix')), {'calibre': 'https://calibre-ebook.com'})
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def test_identifiers(self): # {{{
|
def test_identifiers(self): # {{{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user