Esempio n. 1
0
def generate_test(parts=[1, 2, 3, 4, 5, 6, 7], length=10, login=None):
    from pddtest.resource import PddQuestion, PddTestWSResource
    server = redis.Redis(REDIS_HOST, REDIS_PORT)
    if not isinstance(parts, list):
        parts = [int(parts)]
    questions_dict = {}
    for part in parts:
        questions = server.smembers('chapter.{}.question'.format(part))
        questions_dict[part] = [PddQuestion.from_dict(literal_eval(question)) for question in questions]
    if login:
        # todo rebuild for each person
        all_questions = []
        for question_list in questions_dict.values():
            all_questions.extend(question_list)
        questions = random.sample(all_questions, min(length, len(all_questions)))
    else:
        all_questions = []
        for question_list in questions_dict.values():
            all_questions.extend(question_list)
        questions = random.sample(all_questions, min(length, len(all_questions)))
    pdd_test_resource = PddTestWSResource(questions)
    return pdd_test_resource
Esempio n. 2
0
def add_question_to_db(question, variants, right_variant_index, chapter_num, href=None):
    server = redis.Redis(REDIS_HOST, REDIS_PORT)
    question = PddQuestion(question, variants, right_variant_index, chapter_num, href=href)
    return server.sadd('chapter.{}.question'.format(int(float(chapter_num))), question.to_dict())
Esempio n. 3
0
def add_question_to_db(question_str, variants, right_variant_index, chapter_num, href=None):
    from pddtest.resource import PddQuestion
    server = redis.Redis(REDIS_HOST, REDIS_PORT)
    question = PddQuestion(question_str, variants, right_variant_index, chapter_num, href=href)
    chapter_num_int = int(float(chapter_num))
    return server.sadd('chapter.{}.question'.format(get_part(chapter_num_int)), question.to_dict())