Пример #1
0
    def test_userdata(self):
        userdata = UserData.remember(1, 1, 1)
        self.assertEqual(userdata, True)
        userdata = UserData.remember(1, 1, 1)
        self.assertEqual(userdata, None)

        userdata = UserData.forget(1, 1, 1)
        self.assertEqual(userdata, True)
        userdata = UserData.forget(2, 1, 1)
        self.assertEqual(userdata, None)

        userdata = UserData.remembered(1, 1, 1)
        self.assertEqual(userdata, None)
        userdata = UserData.remembered(2, 1, 1)
        self.assertEqual(userdata, True)

        userword = len(list(UserData.user_word(1, 1)))
        self.assertEqual(userword, 2)
        userword_count = len(UserData.user_word_count(1, 1))
        self.assertEqual(userword_count, 3)
        recent_day = len(list(UserData.recent_days(1, 1)))
        self.assertEqual(recent_day, 1)

        review = UserData.review_word(1, 1)
        self.assertEqual(review, None)
Пример #2
0
def practice():
    data = request.get_json()
    if not data:
        return {'message': 'You must provide JSON data.'}, 400

    errors = {}
    if not 'word' in data or not data.get('word', None):
        errors['word'] = 'Error word id.'
    if not 'vtype' in data or not data.get('vtype', None):
        errors['vtype'] = 'Error vocab type id.'
    if not 'status' in data or not data.get('status', None):
        errors['status'] = 'Error status.'

    if errors:
        return jsonify({'message': errors}), 400

    userdata = {'uid': g.user.uid, 'wid': data['word'], 'tid': data['vtype']}
    statistic = DailyStatisticCache()
    if data['status'] == 1:
        if UserData.remember(**userdata):
            statistic.increase(1)
    elif data['status'] == 2:
        if UserData.forget(**userdata):
            statistic.increase(2)
    elif data['status'] == 3:
        if UserData.remembered(**userdata):
            statistic.increase(1)
    else:
        return {'message': 'Error status.'}, 400

    return jsonify(statistic.get())