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/