gnunetbib

Bibliography (BibTeX, based on AnonBib)
Log | Files | Refs | README | LICENSE

tests.py (3233B)


      1 #!/usr/bin/python2
      2 # Copyright 2004-2008, Nick Mathewson.  See LICENSE for licensing info.
      3 
      4 """Unit tests for anonbib."""
      5 
      6 import BibTeX
      7 import metaphone
      8 #import reconcile
      9 #import writeHTML
     10 #import updateCache
     11 
     12 import unittest
     13 
     14 class MetaphoneTests(unittest.TestCase):
     15     def testMetaphone(self):
     16         pass
     17 
     18 class BibTeXTests(unittest.TestCase):
     19     def testTranslation(self):
     20         ut = BibTeX.url_untranslate
     21         self.assertEquals(ut("Fred"),"Fred")
     22         self.assertEquals(ut("Hello, World."), "Hello_2c_20World.")
     23 
     24         te = BibTeX.TeXescapeURL
     25         ute = BibTeX.unTeXescapeURL
     26         self.assertEquals(te("http://example/~me/my_file"),
     27                           r"http://example/\{}~me/my\_file")
     28         self.assertEquals(ute(r"http:{}//example/\{}~me/my\_file"),
     29                           "http://example/~me/my_file")
     30 
     31         h = BibTeX.htmlize
     32         self.assertEquals(h("Hello, world"), "Hello, world")
     33         self.assertEquals(h(r"\'a\`e\'{i}(\'\i)\"o&\^u"),
     34                           "áèí(í)ö&"
     35                           "û")
     36         self.assertEquals(h(r"\~n and \c{c}"), "ñ and ç")
     37         self.assertEquals(h(r"\AE---a ligature"), "Æ—a ligature")
     38         self.assertEquals(h(r"{\it 33}"), " 33")
     39         self.assertEquals(h(r"Pages 33--99 or vice--versa?"),
     40                           "Pages 33-99 or vice–versa?")
     41 
     42         t = BibTeX.txtize
     43         self.assertEquals(t("Hello, world"), "Hello, world")
     44         self.assertEquals(t(r"\'a\`e\'{i}(\'\i)\"o&\^u"),
     45                           "aei(i)o&u")
     46         self.assertEquals(t(r"\~n and \c{c}"), "n and c")
     47         self.assertEquals(t(r"\AE---a ligature"), "AE---a ligature")
     48         self.assertEquals(t(r"{\it 33}"), " 33")
     49         self.assertEquals(t(r"Pages 33--99 or vice--versa?"),
     50                           "Pages 33--99 or vice--versa?")
     51 
     52     def authorsParseTo(self,authors,result):
     53         pa = BibTeX.parseAuthor(authors)
     54         self.assertEquals(["|".join(["+".join(item) for item in
     55                                      [a.first,a.von,a.last,a.jr]])
     56                            for a in pa],
     57                           result)
     58 
     59     def testAuthorParsing(self):
     60         pa = BibTeX.parseAuthor
     61         PA = BibTeX.ParsedAuthor
     62         apt = self.authorsParseTo
     63 
     64         apt("Nick A. Mathewson and Roger Dingledine",
     65             ["Nick+A.||Mathewson|", "Roger||Dingledine|"])
     66         apt("John van Neumann", ["John|van|Neumann|"])
     67         apt("P. Q. Z. de la Paz", ["P.+Q.+Z.|de+la|Paz|"])
     68         apt("Cher", ["||Cher|"])
     69         apt("Smith, Bob", ["Bob||Smith|"])
     70         apt("de Smith, Bob", ["Bob|de|Smith|"])
     71         apt("de Smith, Bob Z", ["Bob+Z|de|Smith|"])
     72         #XXXX Fix this.
     73         #apt("Roberts Smith Wilkins, Bob Z", ["Bob+Z||Smith+Wilkins|"])
     74         apt("Smith, Jr, Bob", ["Bob||Smith|Jr"])
     75 
     76         #XXXX Fix this.
     77         #apt("R Jones, Jr.", ["R||Jones|Jr."])
     78         apt("Smith, Bob and John Smith and Last,First",
     79             ["Bob||Smith|", "John||Smith|", "First||Last|"])
     80         apt("Bob Smith and John Smith and John Doe",
     81             ["Bob||Smith|", "John||Smith|", "John||Doe|"])
     82 
     83 
     84 if __name__ == '__main__':
     85     unittest.main()
     86