Exemplo n.º 1
0
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)