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