def test_content_entries_only(self): with open( 'tests/data/multiple_entries_and_comments.bib') as bibtex_file: bib_database = bibdeskparser.load(bibtex_file) writer = BibTexWriter() writer.contents = ['entries'] result = bibdeskparser.dumps(bib_database, writer) expected = """@book{Toto3000, author = {Toto, A and Titi, B}, title = {A title} } @article{Wigner1938, author = {Wigner, E.}, doi = {10.1039/TF9383400029}, issn = {0014-7672}, journal = {Trans. Faraday Soc.}, owner = {fr}, pages = {29--41}, publisher = {The Royal Society of Chemistry}, title = {The transition state method}, volume = {34}, year = {1938} } @book{Yablon2005, author = {Yablon, A.D.}, publisher = {Springer}, title = {Optical fiber fusion slicing}, year = {2005} } """ self.assertEqual(result, expected)
def test_write_file(self): with open(self.input_file_path) as bibtex_file: bibtex_database = bibdeskparser.load(bibtex_file) with TemporaryFile(mode='w+') as bibtex_out_file: bibdeskparser.dump(bibtex_database, bibtex_out_file) bibtex_out_file.seek(0) bibtex_out_str = bibtex_out_file.read() self.assertEqual(bibtex_out_str, self.expected)
def test_align(self): bib_database = BibDatabase() bib_database.entries = [{ 'ID': 'abc123', 'ENTRYTYPE': 'book', 'author': 'test', 'thisisaverylongkey': 'longvalue', }] writer = BibTexWriter() writer.align_values = True result = bibdeskparser.dumps(bib_database, writer) expected = """@book{abc123, author = {test}, thisisaverylongkey = {longvalue} } """ self.assertEqual(result, expected) with open( 'tests/data/multiple_entries_and_comments.bib') as bibtex_file: bib_database = bibdeskparser.load(bibtex_file) writer = BibTexWriter() writer.contents = ['entries'] writer.align_values = True result = bibdeskparser.dumps(bib_database, writer) expected = """@book{Toto3000, author = {Toto, A and Titi, B}, title = {A title} } @article{Wigner1938, author = {Wigner, E.}, doi = {10.1039/TF9383400029}, issn = {0014-7672}, journal = {Trans. Faraday Soc.}, owner = {fr}, pages = {29--41}, publisher = {The Royal Society of Chemistry}, title = {The transition state method}, volume = {34}, year = {1938} } @book{Yablon2005, author = {Yablon, A.D.}, publisher = {Springer}, title = {Optical fiber fusion slicing}, year = {2005} } """ self.assertEqual(result, expected)
def test_content_comment_only(self): with open( 'tests/data/multiple_entries_and_comments.bib') as bibtex_file: bib_database = bibdeskparser.load(bibtex_file) writer = BibTexWriter() writer.contents = ['comments'] result = bibdeskparser.dumps(bib_database, writer) expected = """@comment{} @comment{A comment} """ self.assertEqual(result, expected)
def test_write_str(self): with open(self.input_file_path) as bibtex_file: bibtex_database = bibdeskparser.load(bibtex_file) result = bibdeskparser.dumps(bibtex_database) self.assertEqual(result, self.expected)
def test_parse_file_module(self): with open(self.input_file_path) as bibtex_file: bibtex_database = bibdeskparser.load(bibtex_file) self.assertEqual(bibtex_database.entries, self.entries_expected)