#!/usr/bin/python # -*- coding: utf-8 -*- """Unit tests for term.py""" import term import unittest class KnownValues(unittest.TestCase): knownValues = ( ('en','noun','en','example','', "'''example'''", '[[example]]'), ('en','noun','nl','voorbeeld','n', "'''voorbeeld''' ''n''", "[[voorbeeld]] ''n''"), ('nl','noun','nl','voorbeeld','n', "'''voorbeeld''' {{n}}", "[[voorbeeld]] {{n}}"), ('en','verb','en','to show','', "'''to show'''", 'to [[show]]'), ('en','verb','nl','tonen','', "'''tonen'''", "[[tonen]]"), ('nl','verb','nl','tonen','', "'''tonen'''", "[[tonen]]"), ) def testTermKnownValuesWikiWrapAsExample(self): """WikiWrap output correct for a term used as an example""" for wikilang, pos, termlang, thisterm, termgender, asexample, forlist in self.knownValues: if pos=='noun': aterm = term.Noun(termlang, thisterm, gender=termgender) if pos=='verb': aterm = term.Verb(termlang, thisterm) result = aterm.wikiWrapAsExample(wikilang) self.assertEqual(asexample, result) def testTermKnownValuesWikiWrapForList(self): """WikiWrap output correct for a term when used in a list""" for wikilang, pos, termlang, thisterm, termgender, asexample, forlist in self.knownValues: if pos=='noun': aterm = term.Noun(termlang, thisterm, gender=termgender) if pos=='verb': aterm = term.Verb(termlang, thisterm) result = aterm.wikiWrapForList(wikilang) self.assertEqual(forlist, result) def testTermKnownValuesWikiWrapAsTranslation(self): """WikiWrap output correct for a term when used as a translation""" for wikilang, pos, termlang, thisterm, termgender, asexample, forlist in self.knownValues: if pos=='noun': aterm = term.Noun(termlang, thisterm, gender=termgender) if pos=='verb': aterm = term.Verb(termlang, thisterm) result = aterm.wikiWrapAsTranslation(wikilang) self.assertEqual(forlist, result) knownParserValues = ( ("[[example]] ",'en','example','',1), ("[[voorbeeld]] ''n''",'nl','voorbeeld','n',1), ("[[voorbeeld]] {{n}}",'nl','voorbeeld','n',1), ("[[voorbeelden]] ''n, pl''",'nl','voorbeelden','n',2), ("[[voorbeelden]] {{n}},{{p}}",'nl','voorbeelden','n',2), # ("to [[show]]",'en','to show','',1), ("[[tonen]]",'nl','tonen','',1), ) def testParser(self): '''self.term, self.gender and self.number parsed correctly from Wiki format''' for wikiline, termlang, thisterm, termgender, termnumber in self.knownParserValues: aterm = term.Term(termlang, '', wikiline=wikiline) self.assertEqual(aterm.getTerm(), thisterm) self.assertEqual(aterm.getGender(), termgender) self.assertEqual(aterm.getNumber(), termnumber) if __name__ == "__main__": unittest.main()