class WordsTestEngineTests(unittest.TestCase): def setUp(self): self.multi_lines = [ 'pl;br;en;group', 'cześć;oi|olá;hi|hello;basics', 'dzień;o dia;day;basics', ] self.multi_dict = WordsDict.from_string_io(self.multi_lines) #self.multi_dict = WordsDict.from_string_io_unicode(self.multi_lines) self.test_engine = WordsTestEngine(self.multi_dict, u'pl', u'br') def test_get_dict_entry(self): expected_dict_entry = { u'pl': u'cześć', u'br': u'oi|olá', u'en': u'hi|hello', u'group': u'basics', } self.assertEqual(self.test_engine.get_dict_entry(0), expected_dict_entry) def test_get_expected_answers(self): expected_answers = [u'oi', u'olá'] dict_entry = self.test_engine.get_dict_entry(0) self.assertEqual(self.test_engine.get_expected_answers(dict_entry), expected_answers) def test_no_error(self): dict_entry = self.test_engine.get_dict_entry(1) error = self.test_engine.get_error(dict_entry, u'o dia') self.assertIsNone(error) def test_single_error(self): dict_entry = self.test_engine.get_dict_entry(1) answer = u'dia' expected_error = { u'expected': [u'o dia', ], u'answer': answer, u'question': u'dzień', } self.assertEqual(self.test_engine.get_error(dict_entry, answer), expected_error) def test_multi_ok(self): dict_entry = self.test_engine.get_dict_entry(0) error_oi = self.test_engine.get_error(dict_entry, u'oi') error_ola = self.test_engine.get_error(dict_entry, u'olá') self.assertIsNone(error_oi) self.assertIsNone(error_ola) def test_multi_error(self): dict_entry = self.test_engine.get_dict_entry(0) answer = u'tchau' expected_error = { u'expected': [u'oi', u'olá', ], u'answer': answer, u'question': u'cześć', } self.assertEqual(self.test_engine.get_error(dict_entry, answer), expected_error) def test_precision(self): dict_entry = self.test_engine.get_dict_entry(0) answer = u'ola' expected_error = { u'expected': [u'oi', u'olá', ], u'answer': answer, u'question': u'cześć', } self.assertEqual(self.test_engine.get_error(dict_entry, answer), expected_error)