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
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())
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())