示例#1
0
 def test_importInvalidXML(self):
     vlines = validXML.splitlines()
     vlines[6:6] = ["<unspecifiedElement>bla</unspecifiedElement>"]
     invalidXML = "\n".join(vlines)
     
     self.assertRaisesRegexp(XMLSyntaxError, "not expected",
                             lambda : Exercise.fromXMLString(invalidXML.encode('utf-8')))
     del vlines[6]
     vlines[7:7] = ['<tex_exercise lang="DE">double german</tex_exercise>']
     invalidXML2 = "\n".join(vlines)
     self.assertRaisesRegexp(XMLSyntaxError, "Duplicate key-sequence",
                             lambda : Exercise.fromXMLString(invalidXML2.encode('utf-8')))
示例#2
0
    def test_importInvalidXML(self):
        vlines = validXML.splitlines()
        vlines[6:6] = ["<unspecifiedElement>bla</unspecifiedElement>"]
        invalidXML = "\n".join(vlines)

        self.assertRaisesRegexp(
            XMLSyntaxError, "not expected",
            lambda: Exercise.fromXMLString(invalidXML.encode('utf-8')))
        del vlines[6]
        vlines[7:7] = ['<tex_exercise lang="DE">double german</tex_exercise>']
        invalidXML2 = "\n".join(vlines)
        self.assertRaisesRegexp(
            XMLSyntaxError, "Duplicate key-sequence",
            lambda: Exercise.fromXMLString(invalidXML2.encode('utf-8')))
示例#3
0
 def test_jsonExport(self):
     exercise = Exercise.fromXMLString(validXML.encode("utf-8"))
     jsonEx = exercise.toJSON()
     jsonDecoded = json.loads(jsonEx)
     for attrib, value in exercise.items():
         if isinstance(value, datetime.datetime):
             self.assertEqual(datetime.datetime.strptime(jsonDecoded[attrib], Exercise.DATEFMT),
                              value)
         else:
             self.assertEqual(jsonDecoded[attrib], value)
     for attrib in jsonDecoded:
         assert attrib in exercise
示例#4
0
 def test_jsonExport(self):
     exercise = Exercise.fromXMLString(validXML.encode("utf-8"))
     jsonEx = exercise.toJSON()
     jsonDecoded = json.loads(jsonEx)
     for attrib, value in exercise.items():
         if isinstance(value, datetime.datetime):
             self.assertEqual(
                 datetime.datetime.strptime(jsonDecoded[attrib],
                                            Exercise.DATEFMT), value)
         else:
             self.assertEqual(jsonDecoded[attrib], value)
     for attrib in jsonDecoded:
         assert attrib in exercise
示例#5
0
 def test_xmlExport(self):
     self.maxDiff = None
     self.assertEqual(Exercise.fromXMLString(validXML.encode('utf-8')).toXML(),
                      validXML)
示例#6
0
 def test_importTooRecentSchema(self):
     invalidXML = validXML.replace('schemaversion="2"', 'schemaversion="1000"')
     self.assertRaises(VersionMismatchError,
                       lambda : Exercise.fromXMLString(invalidXML.encode('utf-8')))
示例#7
0
 def test_xmlExport(self):
     self.maxDiff = None
     self.assertEqual(
         Exercise.fromXMLString(validXML.encode('utf-8')).toXML(), validXML)
示例#8
0
 def test_importTooRecentSchema(self):
     invalidXML = validXML.replace('schemaversion="2"',
                                   'schemaversion="1000"')
     self.assertRaises(
         VersionMismatchError,
         lambda: Exercise.fromXMLString(invalidXML.encode('utf-8')))