Пример #1
0
    def testParseTrueFalse(self):
        """
        """
        io_tf1 = ("""
Grant a été enterré dans une tombe à New-York.{T #Faux #Vrai}
        """)

        io_tf2 = ("""
Le soleil se lève à l'Ouest.{FALSE}
        """)

        #TF1
        question1 = pygift.Question('', '', '')
        question1.parse(io_tf1)
        self.assertIsInstance(question1.answers, pygift.TrueFalseSet)
        self.assertTrue(question1.answers.answer)
        self.assertTrue('Faux' in question1.answers.feedbackWrong)
        self.assertTrue('Vrai' in question1.answers.feedbackCorrect)

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')
        del question1

        #TF2
        question2 = pygift.Question('', '', '')
        question2.parse(io_tf2)
        self.assertIsInstance(question2.answers, pygift.TrueFalseSet)
        self.assertFalse(question2.answers.answer)

        ##TEST MY PRINT !! ##
        question2.myprint()
        print('\n')
        del question2
Пример #2
0
    def testParseHead(self):
        """
        """
        io_head1 = ("""::Macumba::
[markdown]
blabla
\n
bleble
{}""")
        io_head2 = ("""[html]
Macumba
blabla
\n
bleble
{}""")
        # HEAD 1
        question = pygift.Question('', '', '')
        question._parseHead(io_head1)
        self.assertEqual(question.title, "Macumba")
        self.assertEqual(question.text, "blabla\n\n\nbleble\n{}")
        self.assertEqual(question.markup, "markdown")

        # HEAD 2
        question2 = pygift.Question('', '', '')
        question2._parseHead(io_head2)
        self.assertEqual(question2.title, "")
        self.assertEqual(question2.text, "Macumba\nblabla\n\n\nbleble\n{}")
        self.assertEqual(question2.markup, "html")

        del question, question2
Пример #3
0
    def testParseNumeric(self):
        """
        test numeric answer return of :func:`pygift._parseNumericAnswers`
        """
        io_num1 = ("""
1 OU 2 OU 3?{
#2
}""")
        io_num2 = ("""
1 OU 2 OU 3?{
#2:1
#### MEGA COMMENT
}""")
        io_num3 = ("""
1 OU 2 OU 3?{
#1..3
}""")

        io_num4 = ("""
1 OU 2 OU 3?{
#
}""")
        # FIXME : Ne pas passer par la méthode parse mais par _parseNumericAnswers / _parseNumericText
        #NUM1
        question1 = pygift.Question('', '', '')
        question1.parse(io_num1)
        self.assertTrue(question1.numeric)
        self.assertIsInstance(question1.answers, pygift.NumericAnswerSet)
        self.assertIsInstance(question1.answers.answers[0],
                              pygift.NumericAnswer)
        self.assertEqual(question1.answers.answers[0].value, 2)
        self.assertEqual(question1.answers.answers[0].tolerance, 0)
        del question1
        # NUM2
        question2 = pygift.Question('', '', '')
        question2.parse(io_num2)
        self.assertTrue(question2.numeric)
        self.assertIsInstance(question2.answers, pygift.NumericAnswerSet)
        self.assertIsInstance(question2.answers.answers[0],
                              pygift.NumericAnswer)
        self.assertEqual(question2.answers.answers[0].value, 2)
        self.assertEqual(question2.answers.answers[0].tolerance, 1)
        del question2
        # #NUM3
        question3 = pygift.Question('', '', '')
        question3.parse(io_num3)
        self.assertTrue(question3.numeric)
        self.assertIsInstance(question3.answers, pygift.NumericAnswerSet)
        self.assertIsInstance(question3.answers.answers[0],
                              pygift.NumericAnswerMinMax)
        self.assertEqual(question3.answers.answers[0].mini, str(1))
        self.assertEqual(question3.answers.answers[0].maxi, str(3))
        del question3

        question4 = pygift.Question('', '', '')
        question4.parse(io_num4)
        self.assertTrue(question4.numeric)
        self.assertFalse(question4.valid)
Пример #4
0
    def testParseShortSet(self):
        """
        """
        io_short1 = ("""
second part of text of Q2
My Question{
=2 =Q2 =Question2
} other part
        """)
        question1 = pygift.Question('', '', '')
        question1.parse(io_short1)
        self.assertIsInstance(question1.answers, pygift.ShortSet)
        for (i, a) in enumerate(question1.answers.answers):
            if i == 0:
                self.assertTrue('2' in a.answer)
            if i == 1:
                self.assertTrue('Q2' in a.answer)
            if i == 2:
                self.assertTrue('Question2' in a.answer)

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')

        del question1
Пример #5
0
    def testParseMatchingSet(self):
        """
        """
        io_match1 = ("""
Appariez les pays suivants avec les capitales correspondantes. {
   =Canada -> Ottawa
   =Italie -> Rome
   =Japon -> Tokyo
   =Inde -> New Delhi
}""")
        question1 = pygift.Question('', '', '')
        question1.parse(io_match1)
        self.assertIsInstance(question1.answers, pygift.MatchingSet)
        self.assertEqual([' Ottawa', ' Rome', ' Tokyo', ' New Delhi'],
                         question1.answers.possibleAnswers)
        for (i, a) in enumerate(question1.answers.answers):
            if i == 0:
                self.assertTrue('Canada' in a.question)
                self.assertTrue('Ottawa' in a.answer)
            if i == 1:
                self.assertTrue('Italie' in a.question)
                self.assertTrue('Rome' in a.answer)
            if i == 2:
                self.assertTrue('Japon' in a.question)
                self.assertTrue('Tokyo' in a.answer)
            if i == 3:
                self.assertTrue('Inde' in a.question)
                self.assertTrue('New Delhi' in a.answer)

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')

        del question1
Пример #6
0
 def testParseError(self):
     """
     test the fail value of :func:`pygift._parseAnswer`
     """
     q = pygift.Question('', '', '')
     q._parseAnswer('blazqopk')
     self.assertFalse(q.valid)
     q.myprint()
     self.assertEqual('', q.toHTML())
Пример #7
0
    def testParseEssay(self):
        """
        """
        io_essay = ("""
Blablablablabla
{}
        """)

        #ESSAY
        question1 = pygift.Question('', '', '')
        question1.parse(io_essay)
        self.assertIsInstance(question1.answers, pygift.Essay)

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')
        del question1
Пример #8
0
    def testParseDescription(self):
        """
        """
        io_descrip = ("""
Blablablablabla
        """)

        #DESCRIP
        question1 = pygift.Question('', '', '')
        question1.parse(io_descrip)
        self.assertIsInstance(question1.answers, pygift.Description)

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')

        del question1
Пример #9
0
    def testParseMultiChoiceSet(self):
        """
        """
        io_choice1 = ("""
Parmi ces personnes, nommez-en deux qui sont enterrées dans la Grant's tomb. {
   ~%-100%Personne
   ~%50%Grant
   ~%50%L'épouse de Grant
   ~%-100%Le père de Grant
}        """)

        io_choice2 = ("""
question {
~%33.33333%Bonne réponse
~%33.33333%Bonne réponse
~%33.33333%Bonne réponse
~%0%Mauvaise réponse
~%0%Mauvaise réponse
}
        """)

        #CHOICE1
        question1 = pygift.Question('', '', '')
        question1.parse(io_choice1)
        self.assertIsInstance(question1.answers, pygift.MultipleChoicesSet)
        for (i, a) in enumerate(question1.answers.answers):
            if i == 0:
                self.assertTrue('Personne' in a.answer)
                self.assertEqual(-100, float(a.fraction))
            if i == 1:
                self.assertTrue('Grant' in a.answer)
                self.assertEqual(50, float(a.fraction))
            if i == 2:
                self.assertTrue("L'épouse de Grant" in a.answer)
                self.assertEqual(50, float(a.fraction))
            if i == 3:
                self.assertTrue('Le père de Grant' in a.answer)
                self.assertEqual(-100, float(a.fraction))

        ##TEST MY PRINT !! ##
        question1.myprint()
        print('\n')
        del question1

        #CHOICE2
        question2 = pygift.Question('', '', '')
        question2.parse(io_choice2)
        self.assertIsInstance(question2.answers, pygift.MultipleChoicesSet)
        for (i, a) in enumerate(question2.answers.answers):
            if i == 0:
                self.assertTrue('Bonne réponse' in a.answer)
                self.assertEqual(33.33333, float(a.fraction))
            if i == 1:
                self.assertTrue('Bonne réponse' in a.answer)
                self.assertEqual(33.33333, float(a.fraction))
            if i == 2:
                self.assertTrue('Bonne réponse' in a.answer)
                self.assertEqual(33.33333, float(a.fraction))
            if i == 3:
                self.assertTrue('Mauvaise réponse' in a.answer)
                self.assertEqual(0, float(a.fraction))
            if i == 4:
                self.assertTrue('Mauvaise réponse' in a.answer)
                self.assertEqual(0, float(a.fraction))

        ##TEST MY PRINT !! ##
        question2.myprint()
        print('\n')

        del question2
Пример #10
0
    def testParseSelectSet(self):
        """
        """
        io_mult1 = ("""
Qui repose dans la Grant's tomb ? {=Grant ~Personne ~Napoléon ~Churchill ~Mère Teresa}
""")
        io_mult2 = ("""
// Question : 1 Nom : Grant's tomb
::Grant's tomb::Qui repose dans la Grant's tomb à New-York ? {
=Grant
~Personne
#C'était vrai pendant 12 ans, mais la dépouille de Grant a été enterrée dans cette tombe en 1897.
~Napoléon
#Il a été enterré en France.
~Churchill
#Il a été enterré en Angleterre.
~Mère Teresa
#Elle a été enterrée en Inde.
}
""")
        # mult1
        question1 = pygift.Question('', '', '')
        question1.parse(io_mult1)
        self.assertIsInstance(question1.answers, pygift.SelectSet)
        for (i, a) in enumerate(question1.answers.answers):
            self.assertIsInstance(a, pygift.AnswerInList)
            if i == 0:
                self.assertTrue('Grant' in a.answer)
                self.assertEqual(a.fraction, 100)
            else:
                self.assertEqual(a.fraction, 0)
            if i == 1: self.assertTrue('Personne' in a.answer)
            if i == 2: self.assertTrue('Napoléon' in a.answer)
            if i == 3: self.assertTrue('Churchill' in a.answer)
            if i == 4: self.assertTrue('Mère Teresa' in a.answer)

        # #TEST MY PRINT !! ##
        question1.myprint()
        print('\n')

        del question1

        # mult2
        question2 = pygift.Question('', '', '')
        question2.parse(io_mult2)
        self.assertIsInstance(question2.answers, pygift.SelectSet)
        for (i, a) in enumerate(question2.answers.answers):
            self.assertIsInstance(a, pygift.AnswerInList)
            if i == 0:
                self.assertTrue('Grant' in a.answer)
                self.assertEqual(a.fraction, 100)
            else:
                self.assertEqual(a.fraction, 0)
            if i == 1:
                self.assertTrue('Personne' in a.answer)
                self.assertTrue(
                    "C'était vrai pendant 12 ans, mais la dépouille de Grant a été enterrée dans cette tombe en 1897."
                    in a.feedback)
            if i == 2:
                self.assertTrue('Napoléon' in a.answer)
                self.assertTrue("Il a été enterré en France." in a.feedback)
            if i == 3:
                self.assertTrue('Churchill' in a.answer)
                self.assertTrue(
                    "Il a été enterré en Angleterre." in a.feedback)
            if i == 4:
                self.assertTrue('Mère Teresa' in a.answer)
                self.assertTrue('Elle a été enterrée en Inde.' in a.feedback)
        ##TEST MY PRINT !! ##
        question2.myprint()
        print('\n')

        del question2