You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.1 KiB
69 lines
2.1 KiB
# -*- coding: utf-8 -*-
|
|
|
|
import unittest
|
|
|
|
import dotdot
|
|
import fixtures
|
|
import str_fixtures
|
|
from pubs.paper import Paper
|
|
from pubs.endecoder import EnDecoder
|
|
|
|
|
|
class TestAttributes(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.p = Paper.from_bibentry(
|
|
fixtures.page_bibentry,
|
|
metadata=fixtures.page_metadata).deepcopy()
|
|
|
|
def test_tags(self):
|
|
self.assertEqual(self.p.tags, set(['search', 'network']))
|
|
|
|
def test_add_tag(self):
|
|
self.p.add_tag('algorithm')
|
|
self.assertEqual(self.p.tags, set(['search', 'network', 'algorithm']))
|
|
self.p.add_tag('algorithm')
|
|
self.assertEqual(self.p.tags, set(['search', 'network', 'algorithm']))
|
|
|
|
def test_set_tags(self):
|
|
self.p.tags = ['algorithm']
|
|
self.assertEqual(self.p.tags, set(['algorithm']))
|
|
|
|
def test_remove_tags(self):
|
|
self.p.remove_tag('network')
|
|
self.assertEqual(self.p.tags, set(['search']))
|
|
|
|
def test_mixed_tags(self):
|
|
self.p.add_tag('algorithm')
|
|
self.assertEqual(self.p.tags, set(['search', 'network', 'algorithm']))
|
|
self.p.remove_tag('network')
|
|
self.assertEqual(self.p.tags, set(['search', 'algorithm']))
|
|
self.p.tags = ['ranking']
|
|
self.assertEqual(self.p.tags, set(['ranking']))
|
|
self.p.remove_tag('ranking')
|
|
self.assertEqual(self.p.tags, set())
|
|
self.p.remove_tag('ranking')
|
|
|
|
def test_fails_with_empty_citekey(self):
|
|
with self.assertRaises(ValueError):
|
|
Paper(" ", fixtures.doe_bibdata)
|
|
|
|
|
|
class TestPaperUnicodeBibdata(unittest.TestCase):
|
|
|
|
def test_no_latex(self):
|
|
p = Paper.from_bibentry(fixtures.page_bibentry,
|
|
metadata=fixtures.page_metadata).deepcopy()
|
|
self.assertEqual(p.bibdata, p.get_unicode_bibdata())
|
|
|
|
def test_latex_converted(self):
|
|
bib = EnDecoder().decode_bibdata(str_fixtures.bibtex_with_latex)
|
|
p = Paper.from_bibentry(bib)
|
|
ubib = p.get_unicode_bibdata()
|
|
self.assertEqual(ubib['author'][0], u"Kjær, Kurt H")
|
|
self.assertEqual(ubib['author'][3], u"Bjørk, Anders A")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|