Exemplo n.º 1
0
    def test_update_mp3(self):
        mock_word_info = mock_info.word_info
        with session_scope() as session:
            session.query(Word).filter_by(
                word_name=mock_word_info['word_name']).delete()

        word_id = word_store.create(
            mock_word_info['word_name'],
            mock_word_info['ph'],
            mock_word_info['tran_means'],
            mock_word_info['mp3_url'],
            '',
        )

        mock_path = '/data/mp3/mock.mp3'
        mock_url = mock_word_info['mp3_url'] + 'mock'
        word_store.update_mp3(id=word_id, path=mock_path, url=mock_url)
        assert word_store.get_word(id=word_id)['mp3']['path'] == mock_path
        assert word_store.get_word(id=word_id)['mp3']['url'] == mock_url

        with session_scope() as session:
            session.query(Mp3).delete()
            session.query(ReviewList).delete()
            session.query(Word).delete()
            session.query(OptimumFactorMatrix).delete()
Exemplo n.º 2
0
 def get_today_word_info(self):
     """Return a word_info from review list"""
     # TODO unit test
     word_id = review_list_store.get_a_word_id()
     word_info = word_store.get_word(id=word_id)
     self._check_music_by_word_info(word_info)
     return word_info
Exemplo n.º 3
0
    def test_get_word(self):
        mock_word_info = mock_info.word_info
        with session_scope() as session:
            session.query(Word).filter_by(
                word_name=mock_word_info['word_name']).delete()

        word_id = word_store.create(
            mock_word_info['word_name'],
            mock_word_info['ph'],
            mock_word_info['tran_means'],
            mock_word_info['mp3_url'],
            '',
        )
        word_info = word_store.get_word(id=word_id)
        assert word_info['word_name'] == mock_word_info['word_name']

        word_info = word_store.get_word(word=mock_word_info['word_name'])
        assert word_info['ph'] == mock_word_info['ph']

        with session_scope() as session:
            session.query(Mp3).delete()
            session.query(ReviewList).delete()
            session.query(Word).delete()
            session.query(OptimumFactorMatrix).delete()
Exemplo n.º 4
0
    def learn_word(self):
        """Learn(Review) a word from review list"""
        try:
            word_id = review_list_store.get_a_word_id()
            word_info = word_store.get_word(id=word_id)

            return_hander.msg(u"[' {} ']".format(word_info['word_name']))
            self._play_music_by_word_info(word_info)
            chr = return_hander.question(
                u"Q: [j] 完全不会;  [k] 有印象; [l] 认识; [e] 熟悉", chars=u'jkle')
            return_hander.msg(u"[' {} ']".format(word_info['word_name']))
            for tran_mean in word_info['tran_means']:
                return_hander.msg(u'[{}] {}'.format(
                    tran_mean['part'],
                    '; '.join(json.loads(tran_mean['means']))))
            ret = return_hander.question(u"[t] 答对了; [f] 答错了",
                                         chars=u'tf') if chr != 'j' else ''

            key = chr + ret
            key2score = {
                'j': 0,
                'kf': 0,
                'lf': 1,
                'ef': 2,
                'kt': 3,
                'lt': 4,
                'et': 5,
            }
            score = key2score[key]
            review_hander.review_a_word(word_id, score)
            errno = 0
            errmsg = "success"
            data = {}

        except LearnListEmptyException:
            errno = 1
            errmsg = "Today's learn list is empty."
            data = {}

        return errno, errmsg, data
Exemplo n.º 5
0
 def get_word(self, word_id):
     word_info = word_store.get_word(id=word_id)
     self._check_music_by_word_info(word_info)
     return word_info