import string
import random
import re

def gen_key(no_of_chars):
    allowed_chars = string.digits+string.uppercase
    return ''.join([random.choice(allowed_chars) for i in range(no_of_chars)])

def correct_quiz(quiz):
    """ read each submitted answer and update the is_correct variable.
    """

    for answer in quiz.que_answered.all():

        expected_ans = answer.question.expected_ans

        ans_regex_patterns = [ r"\s*".join(ans_pattern.split()) for ans_pattern in expected_ans.split("\n") ]
        for pattern in ans_regex_patterns:
            if re.findall(pattern, answer.submitted_ans):
                answer.is_correct = True
                answer.save()
                break

