class BibTexFormatterTest(InvenioTestCase): def setUp(self): from invenio.modules.records.api import Record self.record_good = Bibtex(Record.create(test_record, 'json')) self.record_bad = Bibtex(Record.create(test_bad_record, 'json')) self.record_empty = Bibtex({}) def test_get_entry_type(self): from invenio.modules.records.models import Record from invenio.modules.records.api import get_record records = [] record_list = Record.query.all() for rec in record_list: rec = get_record(rec.id) if rec: records.append(rec) for r in records: b = Bibtex(r) self.assertEqual(r['upload_type']['type'], b._get_entry_type()) self.assertEqual(test_record['upload_type']['type'], self.record_good._get_entry_type()) self.assertEqual('default', self.record_bad._get_entry_type()) def test_get_entry_subtype(self): self.assertEqual(test_record['upload_type']['subtype'], self.record_good._get_entry_subtype()) self.assertEqual('default', self.record_bad._get_entry_subtype()) def test_get_citation_key(self): self.assertEqual("doe_2014_12345", self.record_good._get_citation_key()) self.assertEqual("12345", self.record_bad._get_citation_key()) self.assertRaises(MissingRequiredFieldError, self.record_empty._get_citation_key) def test_get_doi(self): self.assertEqual(test_record['doi'], self.record_good._get_doi()) self.assertRaises(MissingRequiredFieldError, self.record_empty._get_doi) def test_get_author(self): authors = [] for author in test_record['authors']: authors.append(author['name']) self.assertEqual(authors, self.record_good._get_author()) self.assertEqual([], self.record_empty._get_author()) def test_get_title(self): self.assertEqual(test_record['title'], self.record_good._get_title()) self.assertEqual("", self.record_empty._get_title()) def test_get_month(self): good_month = test_record['publication_date'].strftime("%B")[:3].lower() self.assertEqual(good_month, self.record_good._get_month()) self.assertEqual("", self.record_empty._get_month()) def test_get_year(self): self.assertEqual(test_record['publication_date'].strftime("%Y"), self.record_good._get_year()) self.assertEqual("", self.record_empty._get_year()) def test_get_note(self): self.assertEqual(test_record['notes'], self.record_good._get_note()) self.assertEqual("", self.record_empty._get_note()) def test_get_address(self): self.assertEqual(test_record["imprint"]["place"], self.record_good._get_address()) self.assertEqual("", self.record_empty._get_note()) def test_get_annote(self): self.assertEqual("", self.record_good._get_annote()) self.assertEqual("", self.record_empty._get_annote()) def test_get_booktitle(self): self.assertEqual(test_record["part_of"]["title"], self.record_good._get_booktitle()) self.assertEqual("", self.record_empty._get_booktitle()) def test_get_chapter(self): self.assertEqual("", self.record_good._get_chapter()) self.assertEqual("", self.record_empty._get_chapter()) def test_get_edition(self): self.assertEqual("", self.record_good._get_edition()) self.assertEqual("", self.record_empty._get_edition()) def test_get_editor(self): self.assertEqual("", self.record_good._get_editor()) self.assertEqual("", self.record_empty._get_editor()) def test_get_crossref(self): self.assertEqual("", self.record_good._get_crossref()) self.assertEqual("", self.record_empty._get_crossref()) def test_get_howpublished(self): self.assertEqual("", self.record_good._get_howpublished()) self.assertEqual("", self.record_empty._get_howpublished()) def test_get_institution(self): self.assertEqual("", self.record_good._get_institution()) self.assertEqual("", self.record_empty._get_institution()) def test_get_journal(self): self.assertEqual(test_record['journal']['title'], self.record_good._get_journal()) self.assertEqual("", self.record_empty._get_journal()) def test_get_key(self): self.assertEqual("", self.record_good._get_key()) self.assertEqual("", self.record_empty._get_key()) def test_get_number(self): self.assertEqual(test_record['journal']['issue'], self.record_good._get_number()) self.assertEqual("", self.record_empty._get_number()) def test_get_organization(self): self.assertEqual("", self.record_good._get_organization()) self.assertEqual("", self.record_empty._get_organization()) def test_get_pages(self): self.assertEqual(test_record['journal']['pages'], self.record_good._get_pages()) self.assertEqual("", self.record_empty._get_pages()) def test_get_publisher(self): global_cfg = "" if "CFG_SITE_NAME" in cfg: global_cfg = cfg["CFG_SITE_NAME"] self.assertEqual(test_record['imprint']['publisher'], self.record_good._get_publisher()) self.assertEqual(global_cfg, self.record_empty._get_publisher()) def test_get_school(self): self.assertEqual(test_record['thesis_university'], self.record_good._get_school()) self.assertEqual("", self.record_empty._get_school()) def test_get_series(self): self.assertEqual("", self.record_good._get_series()) self.assertEqual("", self.record_empty._get_series()) def test_get_type(self): self.assertEqual("", self.record_good._get_type()) self.assertEqual("", self.record_empty._get_type()) def test_get_url(self): url = "http://dx.doi.org/" + test_record['doi'] self.assertEqual(url, self.record_good._get_url()) self.assertEqual("", self.record_empty._get_url()) def test_get_volume(self): self.assertEqual(test_record['journal']['volume'], self.record_good._get_volume()) self.assertEqual("", self.record_empty._get_volume())
class BibTexFormatterTest(InvenioTestCase): def setUp(self): from invenio.modules.records.api import Record self.record_good = Bibtex(Record.create(test_record, 'json')) self.record_bad = Bibtex(Record.create(test_bad_record, 'json')) self.record_empty = Bibtex({}) def test_get_entry_type(self): from invenio.modules.records.models import Record from invenio.modules.records.api import get_record records = [] record_list = Record.query.all() for rec in record_list: rec = get_record(rec.id) if rec: records.append(rec) for r in records: b = Bibtex(r) self.assertEqual(r['upload_type']['type'], b._get_entry_type()) self.assertEqual(test_record['upload_type']['type'], self.record_good._get_entry_type()) self.assertEqual('default', self.record_bad._get_entry_type()) def test_get_entry_subtype(self): self.assertEqual(test_record['upload_type']['subtype'], self.record_good._get_entry_subtype()) self.assertEqual('default', self.record_bad._get_entry_subtype()) def test_get_citation_key(self): self.assertEqual("doe_2014_12345", self.record_good._get_citation_key()) self.assertEqual("12345", self.record_bad._get_citation_key()) self.assertRaises(MissingRequiredFieldError, self.record_empty._get_citation_key) def test_get_doi(self): self.assertEqual(test_record['doi'], self.record_good._get_doi()) self.assertIsNone(self.record_empty._get_doi()) def test_get_author(self): authors = [] for author in test_record['authors']: authors.append(author['name']) self.assertEqual(authors, self.record_good._get_author()) self.assertEqual([], self.record_empty._get_author()) def test_get_title(self): self.assertEqual(test_record['title'], self.record_good._get_title()) self.assertEqual("", self.record_empty._get_title()) def test_get_month(self): good_month = test_record['publication_date'].strftime("%B")[:3].lower() self.assertEqual(good_month, self.record_good._get_month()) self.assertEqual("", self.record_empty._get_month()) def test_get_year(self): self.assertEqual(test_record['publication_date'].strftime("%Y"), self.record_good._get_year()) self.assertEqual("", self.record_empty._get_year()) def test_get_note(self): self.assertEqual(test_record['notes'], self.record_good._get_note()) self.assertEqual("", self.record_empty._get_note()) def test_get_address(self): self.assertEqual(test_record["imprint"]["place"], self.record_good._get_address()) self.assertEqual("", self.record_empty._get_note()) def test_get_annote(self): self.assertEqual("", self.record_good._get_annote()) self.assertEqual("", self.record_empty._get_annote()) def test_get_booktitle(self): self.assertEqual(test_record["part_of"]["title"], self.record_good._get_booktitle()) self.assertEqual("", self.record_empty._get_booktitle()) def test_get_chapter(self): self.assertEqual("", self.record_good._get_chapter()) self.assertEqual("", self.record_empty._get_chapter()) def test_get_edition(self): self.assertEqual("", self.record_good._get_edition()) self.assertEqual("", self.record_empty._get_edition()) def test_get_editor(self): self.assertEqual("", self.record_good._get_editor()) self.assertEqual("", self.record_empty._get_editor()) def test_get_crossref(self): self.assertEqual("", self.record_good._get_crossref()) self.assertEqual("", self.record_empty._get_crossref()) def test_get_howpublished(self): self.assertEqual("", self.record_good._get_howpublished()) self.assertEqual("", self.record_empty._get_howpublished()) def test_get_institution(self): self.assertEqual("", self.record_good._get_institution()) self.assertEqual("", self.record_empty._get_institution()) def test_get_journal(self): self.assertEqual(test_record['journal']['title'], self.record_good._get_journal()) self.assertEqual("", self.record_empty._get_journal()) def test_get_key(self): self.assertEqual("", self.record_good._get_key()) self.assertEqual("", self.record_empty._get_key()) def test_get_number(self): self.assertEqual(test_record['journal']['issue'], self.record_good._get_number()) self.assertEqual("", self.record_empty._get_number()) def test_get_organization(self): self.assertEqual("", self.record_good._get_organization()) self.assertEqual("", self.record_empty._get_organization()) def test_get_pages(self): self.assertEqual(test_record['journal']['pages'], self.record_good._get_pages()) self.assertEqual("", self.record_empty._get_pages()) def test_get_publisher(self): global_cfg = "" if "CFG_SITE_NAME" in cfg: global_cfg = cfg["CFG_SITE_NAME"] self.assertEqual(test_record['imprint']['publisher'], self.record_good._get_publisher()) self.assertEqual(global_cfg, self.record_empty._get_publisher()) def test_get_school(self): self.assertEqual(test_record['thesis_university'], self.record_good._get_school()) self.assertEqual("", self.record_empty._get_school()) def test_get_series(self): self.assertEqual("", self.record_good._get_series()) self.assertEqual("", self.record_empty._get_series()) def test_get_type(self): self.assertEqual("", self.record_good._get_type()) self.assertEqual("", self.record_empty._get_type()) def test_get_url(self): url = "http://dx.doi.org/" + test_record['doi'] self.assertEqual(url, self.record_good._get_url()) self.assertEqual("", self.record_empty._get_url()) def test_get_volume(self): self.assertEqual(test_record['journal']['volume'], self.record_good._get_volume()) self.assertEqual("", self.record_empty._get_volume())