EduploneExam/tests testAnswers.py,NONE,1.1 testBooleanAnswer.py,1.7,NONE

Nils Haagen <[email protected]>
Newsgroups gmane.comp.web.zope.eduplone.cvs
Message-ID <[email protected]>
Update of /cvsroot/eduplone/EduploneExam/tests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24498

Added Files:
	testAnswers.py 
Removed Files:
	testBooleanAnswer.py 
Log Message:
renamed testBoolean to testAnswers

--- testBooleanAnswer.py DELETED ---

--- NEW FILE: testAnswers.py ---
#
# Skeleton PloneTestCase
#

import os, sys
if __name__ == '__main__':
    execfile(os.path.join(sys.path[0], 'framework.py'))

from Testing import ZopeTestCase
from Products.CMFPlone.tests import PloneTestCase

import common

common.installProducts()

from Products.EduploneExam.registry import getAnswerTypes
from Products.CMFCore.utils import getToolByName


class TestAnswers(PloneTestCase.PloneTestCase):

    def afterSetUp(self):
        
        common.installWithinPortal(self.portal)
        
        qtypes = getAnswerTypes()
        tt = self.portal.portal_types
        for t in qtypes:
            ti=tt[qtypes[t].meta_type]
            ti.global_allow=True

        

    def testTrueFalseAnswer(self):
       
        testValues=(\
        
            {'typ':'TrueFalseAnswer', \
             'param':\
                 {'correct':'1', \
                  #caseSensitive:True, \
                 },
             'inValue':'False', \
             'expectedValue':False,\
            }, \
            
            {'typ':'TrueFalseAnswer', \
             'param':\
                 {'correct':'0', \
                  #caseSensitive:True, \
                 },
             'inValue':'False', \
             'expectedValue':True,\
            }, \
        )
        self.runAnswerTest(testValues)
            
            
    def testSingleChoiceAnswer(self):        
        
        testValues=(\
            {'typ':'SingleChoiceAnswer', \
             'param':\
                 {'correct':'1', \
                  #caseSensitive:True, \
                 },
             'inValue':'False', \
             'expectedValue':False,\
            }, \
            {'typ':'SingleChoiceAnswer', \
             'param':\
                 {'correct':'1', \
                  #caseSensitive:True, \
                 },
             'inValue':'on', \
             'expectedValue':True,\
            }, \
        )
        self.runAnswerTest(testValues)
            
    def testMultipleChoiceAnswer(self):
        testValues=(           
            {'typ':'MultipleChoiceAnswer', \
             'param':\
                 {'correct':'1', \
                 },
             'inValue':'on', \
             'expectedValue':True,\
            }, \
            {'typ':'MultipleChoiceAnswer', \
             'param':\
                 {'correct':'0', \
                  #caseSensitive:True, \
                 },
             'inValue':'on', \
             'expectedValue':False,\
            }, \
        )
        
        self.runAnswerTest(testValues)
        
            
            
    def testBlindGapAnswer(self):

        testValues=(              
            {'typ':'BlindGapAnswer', \
             'param':\
                 {'correct':'I want a Hirsch-Schnitzel', \
                  'caseSensitive':'1', \
                 },
             'inValue':'i want a hirsch-schnitzel', \
             'expectedValue':False,\
            }, \
            {'typ':'BlindGapAnswer', \
             'param':\
                 {'correct':'I want a Hirsch-Schnitzel', \
                  'caseSensitive':'0', \
                 },
             'inValue':'i want a hirsch-schnitzel', \
             'expectedValue':True,\
            }, \
            {'typ':'BlindGapAnswer', \
             'param':\
                 {'correct':['I want a Hirsch-Schnitzel','Schnitzel'], \
                  'caseSensitive':'0', \
                 },
             'inValue':'Brutzel', \
             'expectedValue':False,\
            }, \
            {'typ':'BlindGapAnswer', \
             'param':\
                 {'correct':['I want a Hirsch-Schnitzel','Schnitzel'], \
                  'caseSensitive':'0', \
                 },
             'inValue':'Schnitzel', \
             'expectedValue':True,\
            }, \
        )
        
        self.runAnswerTest(testValues)
        
 
    def testTextTaskAnswer(self):           

        testValues=(            
            {'typ':'TextTaskAnswer', \
             'param':\
                 {'correct':['I want a Hirsch-Schnitzel','Schnitzel'], \
                  'caseSensitive':'0', \
                 },
             'inValue':'schnitzel', \
             'expectedValue':True,\
            }, \
            {'typ':'TextTaskAnswer', \
             'param':\
                 {'correct':['I want a Hirsch-Schnitzel','Schnitzel'], \
                  'caseSensitive':'1', \
                 },
             'inValue':'schnitzel', \
             'expectedValue':False,\
            }, \
            {'typ':'TextTaskAnswer', \
             'param':\
                 {'correct':['I want a Hirsch-Schnitzel','Schnitzel'], \
                  'caseSensitive':'0', \
                 },
             'inValue':'schnitzelbrutzel', \
             'expectedValue':False,\
            }, \
        )
        
        self.runAnswerTest(testValues)
            
    def testChoiceGapAnswer(self):           

        testValues=(            
            {'typ':'ChoiceGapAnswer', \
             'param':\
                 {'correct':'Schnitzel', \
                 }, \
             'inValue':'Schnitzel', \
             'expectedValue':True,\
            }, \
            {'typ':'ChoiceGapAnswer', \
             'param':\
                 {'correct':'Schnitzel', \
                 }, \
             'inValue':'ein Schnitzel', \
             'expectedValue':False,\
            }, \
        )
        
        self.runAnswerTest(testValues)
            
    def testMatchingAnswer(self):           

        testValues=(            
            {'typ':'MatchingAnswer', \
             'param':\
                 {'correct':'Schnitzel', \
                 },
             'inValue':'Schnitzel', \
             'expectedValue':True,\
            }, \
            {'typ':'MatchingAnswer', \
             'param':\
                 {'correct':'Schnitzel', \
                 },
             'inValue':'ein Schnitzel', \
             'expectedValue':False,\
            }, \
        )
        
        self.runAnswerTest(testValues)
                 

    def testMathAnswer(self):           

        testValues=(            
            {'typ':'MathAnswer', \
             'param':\
                 {'correct':10, \
                  'tolerance':3}, \
             'inValue':5, \
             'expectedValue':False,\
            }, \
            {'typ':'MathAnswer', \
             'param':\
                 {'correct':10, \
                  'tolerance':3}, \
             'inValue':9, \
             'expectedValue':True,\
            }, \
            {'typ':'MathAnswer', \
             'param':\
                 {'correct':10, \
                  'tolerance':3}, \
             'inValue':13, \
             'expectedValue':True,\
            }, \
        )
        
        self.runAnswerTest(testValues)
            

    def runAnswerTest(self, testValues):        
        self.loginPortalOwner()
        for o in testValues:
            self.portal.invokeFactory(o['typ'], 'TestObject')
            obj=self.portal.TestObject
            for p in o['param'].keys():
                mut=obj.getField(p).getMutator(obj)
                mut(o['param'][p])
            
            #testing:
            r=obj.processValue(o['inValue'])
            self.failUnless(r==o['expectedValue'])
            
            self.portal.manage_delObjects(['TestObject'])
            

def test_suite():
    from unittest import TestSuite, makeSuite
    suite = TestSuite()
    suite.addTest(makeSuite(TestAnswers))
    return suite

if __name__ == '__main__':
    framework()



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.