Fixes to permit content authors to produce nicer diagnostic responses as a result of automatic tests on a submitted exercise: the XML "problem" format is extended to permit two new attributes on the function element: succeed and fail, each providing the text string to be used depending on the result of the test.
/www/apps/tutorialservice/test/TestFramework.py:TestCasePart * made ident et al into classmethods (fixing a commented complaint that these receive self as first argument) * replaced redundant lambda functions with references to these class methods * running a test case now puts the succeed vs fail string in the description depending on the result
/www/apps/tutorialservice/test/parse_tute.py:getCasePartData() * added support for two new attributes on function elements: succeed, fail * default value comes from existing attribute desc for backwards compatibility