Fix collision of entry type key with valid field name 'type'.
Fixes #252.
This commit is contained in:
parent
dc2bc9c0e5
commit
c363e13cbf
@ -7,7 +7,7 @@ from .p3 import ustr, uchr
|
||||
|
||||
# Citekey stuff
|
||||
|
||||
TYPE_KEY = 'type'
|
||||
TYPE_KEY = 'ENTRYTYPE'
|
||||
|
||||
CONTROL_CHARS = ''.join(map(uchr, list(range(0, 32)) + list(range(127, 160))))
|
||||
CITEKEY_FORBIDDEN_CHARS = '@\'\\,#}{~%/ ' # '/' is OK for bibtex but forbidden
|
||||
|
@ -57,6 +57,12 @@ class TestEnDecode(unittest.TestCase):
|
||||
|
||||
self.assertEqual(bibraw1, bibraw2)
|
||||
|
||||
def test_decode_bibtex_preserves_type_field(self):
|
||||
"""Test that multiple encode/decode step preserve data"""
|
||||
decoder = endecoder.EnDecoder()
|
||||
entry = decoder.decode_bibdata(bibtex_raw0)
|
||||
self.assertEqual(entry['Page99']['type'], "technical report")
|
||||
|
||||
def test_endecode_bibtex_BOM(self):
|
||||
"""Test that bibtexparser if fine with BOM-prefixed data"""
|
||||
decoder = endecoder.EnDecoder()
|
||||
@ -179,6 +185,14 @@ class TestEnDecode(unittest.TestCase):
|
||||
with self.assertRaises(decoder.BibDecodingError):
|
||||
decoder.decode_bibdata("@misc{I am not a correct bibtex{{}")
|
||||
|
||||
def test_endecode_preserves_type(self):
|
||||
decoder = endecoder.EnDecoder()
|
||||
entry = decoder.decode_bibdata(bibtex_raw0)
|
||||
|
||||
bibraw1 = decoder.encode_bibdata(
|
||||
entry, ignore_fields=['title', 'note', 'abstract', 'journal'])
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user