def setUp(self): super(DictionaryParserTests, self).setUp() self.parser = DictionaryParser() self.noun = u"Brötchen {n}; Semmel {f}; Wecken {m}; Schrippe {f} [cook.] | Brötchen {pl}; Semmeln {pl}; Wecken {pl}; Schrippen {pl} | (kleines, rundes) Brötchen {n} | kleine(re) Brötchen backen müssen [übtr.] :: roll; bread roll | rolls; bread rolls | biscuit [Am.] | to have to set one's sights lower"
class DictionaryParserTests(TestCase): """ Tests for interpreting content from a dictionary. """ def setUp(self): super(DictionaryParserTests, self).setUp() self.parser = DictionaryParser() self.noun = u"Brötchen {n}; Semmel {f}; Wecken {m}; Schrippe {f} [cook.] | Brötchen {pl}; Semmeln {pl}; Wecken {pl}; Schrippen {pl} | (kleines, rundes) Brötchen {n} | kleine(re) Brötchen backen müssen [übtr.] :: roll; bread roll | rolls; bread rolls | biscuit [Am.] | to have to set one's sights lower" def test_lookup(self): expected = (Noun(u"Brötchen", gender=Noun.NEUTRAL), Translation(u"roll")) result = self.parser.lookup(u"Brötchen") self.assertEqual(expected, result) def test_lookup_raises_when_word_not_found(self): self.assertRaises(WordNotFoundException, self.parser.lookup, word='xyz') def test_parse_line(self): expected = (Noun(u"Brötchen", gender=Noun.NEUTRAL,), Translation(u"roll")) result = self.parser.parse_line(self.noun) self.assertEqual(expected, result) def test_get_variant_type(self): result = self.parser.get_variant_type(u"Brötchen {n}") self.assertEqual(Noun, result) result = self.parser.get_variant_type(u"fliegen {vi}") self.assertEqual(Verb, result) result = self.parser.get_variant_type(u"nüchtern {adj}") self.assertEqual(Adjective, result) def test_multi_word_translation(self): expected = (Noun(word=u"Abnehmerbügel", gender=Noun.MASCULINE,), Translation(word=u"towing arm")) line = u"Abnehmerbügel {m} :: towing arm" result = self.parser.parse_line(line) self.assertEqual(expected, result) def test_get_language_parts(self): original, translation = self.parser.split_original_translation(self.noun) expected = u"Brötchen {n}; Semmel {f}; Wecken {m}; Schrippe {f} [cook.] | Brötchen {pl}; Semmeln {pl}; Wecken {pl}; Schrippen {pl} | (kleines, rundes) Brötchen {n} | kleine(re) Brötchen backen müssen [übtr.]" self.assertEqual(expected, original) expected = u"roll; bread roll | rolls; bread rolls | biscuit [Am.] | to have to set one's sights lower" self.assertEqual(expected, translation) def test_get_variants(self): original, translated = self.parser.split_original_translation(self.noun) expected = u"Brötchen {n}; Semmel {f}; Wecken {m}; Schrippe {f} [cook.]" result = self.parser.get_variants(original) self.assertEqual(expected, result) expected = u"roll; bread roll" result = self.parser.get_variants(translated) self.assertEqual(expected, result) def test_parse_variants(self): original, translated = self.parser.split_original_translation(self.noun) variants = self.parser.get_variants(original) expected = [Noun(u"Brötchen", gender=Noun.NEUTRAL), Noun(u"Semmel", gender=Noun.FEMININE), Noun(u'Wecken', gender=Noun.MASCULINE), Noun(u'Schrippe', gender=Noun.FEMININE), ] result = self.parser.parse_variants(variants) self.assertEqual(expected, result)