Exemplo n.º 1
0
 def test_question_expected(self):
     u = User(nickname = 'john', email = '*****@*****.**', 
         role = ROLE_RESEARCHER)
     db.session.add(u)
     survey = Survey(title = "test",researcher = u)
     db.session.add(survey)
     s1 = Section (title = "1",description = "a",
         sequence = 1, percent = 1, survey = survey)
     db.session.add(s1)
     q1 = QuestionText(text="q1",section=s1,expectedAnswer="1",maxNumberAttempt=3)
     db.session.add(q1)
     db.session.commit()
     ans = Answer(user=u,question=q1,answerText="2")
     db.session.add(ans)
     db.session.commit()
     self.assertFalse(ans.answerAttempt())
     self.assertTrue(ans.isMoreAttempt())
     ans.answerText="1"
     self.assertTrue(ans.answerAttempt())
     ans.numberAttempt=4
     self.assertFalse(ans.isMoreAttempt())
     q2 = QuestionYN(text="q1",section=s1,expectedAnswer="yes",maxNumberAttempt=0)
     db.session.add(q2)
     ans = Answer(user=u,question=q2,answerYN=False)
     db.session.add(ans)
     db.session.commit()
     self.assertTrue(ans.isMoreAttempt())
     self.assertFalse(ans.answerAttempt())
     ans.answerYN=True
     self.assertTrue(ans.answerAttempt())
Exemplo n.º 2
0
 def answer_question(user,q, time):
     l=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10]
     l2=[0,2,4,6,8,10,12,14,16,18,20]
     if q.decision=="decision_one_v1":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_one_v2":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_two":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_three":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_four":
         i=random.choice(l2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_six":
         i=random.choice(l2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_five":
         i=random.randrange(0,2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText = q.choices[answer.answerNumeric]
     elif isinstance (q, QuestionYN):
         answer = Answer (answerYN =random.randrange(0,2)==1, user= user, question = q)
         answer.answerText = str(answer.answerYN)
     elif isinstance (q, QuestionText):
         if q.isExpectedAnswer():
             if random.choice([0,1,1])==1:
             # 66% of know the answer
                 answer = Answer (answerText =q.expectedAnswer.lower(), user= user, question = q)
                 answer.numberAttempt= random.randrange(1, q.maxNumberAttempt+1)
             else:
                 answer = Answer (answerText =forgery_py.forgery.lorem_ipsum.word(), user= user, question = q)
                 answer.numberAttempt= q.maxNumberAttempt+1
         elif q.isNumber:
             answer = Answer (answerNumeric =random.randrange(0,100), user= user, question = q)
             answer.answerText = answer.answerNumeric
         else:
             answer = Answer (answerText =forgery_py.forgery.lorem_ipsum.word(), user= user, question = q)
     elif isinstance (q,QuestionChoice):
         if q.is_range:
             answer = Answer (answerNumeric =random.randrange(q.range_min,q.range_max), user= user, question = q)
             answer.answerText = answer.answerNumeric
         else:
             answer = Answer (answerNumeric =random.randrange(0,len(q.choices)), user= user, question = q)
             answer.answerText = q.choices[answer.answerNumeric]
     elif isinstance (q,QuestionLikertScale):
         answer = Answer (answerNumeric =random.randrange(q.minLikert,q.maxLikert+1), user= user, question = q)
         answer.answerText = answer.answerNumeric
     else:
         print "tipo de pregunta invalido"
         quit()
     t = random.randrange(900, 6500)
     time = time + t
     answer.globalTime = time
     answer.differentialTime = t
     db.session.add(answer)
     return time