def _get_pubnote(self): """Return publication note""" journal, volume, pages = ['', '', ''] if 'publication_info' in self.record: pub_info = self.record['publication_info'] if isinstance(pub_info, list): for field in pub_info: if 'journal_title' in field: journal = field['journal_title'] if 'journal_volume' in field: volume = field['journal_volume'] if 'page_artid' in field: pages = field['page_artid'] if pages: if isinstance(pages, list): for page in pages: dashpos = page.find('-') break else: dashpos = pages.find('-') if dashpos > -1: pages = pages[:dashpos] try: if journal and (volume != '' or pages != ''): coden = ','.join( [get_kbr_keys("CODENS", searchvalue=journal, searchtype='e')[0][0], volume, pages]) return coden except: return '' else: if 'journal_title' in pub_info: journal = pub_info['journal_title'] if 'journal_volume' in pub_info: volume = pub_info['journal_volume'] if 'page_artid' in pub_info: pages = pub_info['page_artid'] if pages: dashpos = pages.find('-') if dashpos > -1: pages = pages[:dashpos] try: if journal and (volume != '' or pages != ''): coden = ','.join( [get_kbr_keys("CODENS", searchvalue=journal, searchtype='e')[0][0], volume, pages]) return coden except: return '' else: return ''
def test_EJOURNALS_keys(self): """bibknowledge - test left/right rules (key lookups)""" from invenio_knowledge.api import get_kbr_values, get_kbr_keys mykeys = get_kbr_keys("EJOURNALS", "Acta") self.assertEqual(2, len(mykeys)) mykeys = get_kbr_values("EJOURNALS", '', searchtype='e') self.assertEqual(0, len(mykeys)) mykeys = get_kbr_values("EJOURNALS", searchtype='s') self.assertEqual(327, len(mykeys)) mykeys = get_kbr_values("EJOURNALS", searchkey='', searchtype='s') self.assertEqual(327, len(mykeys))