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')))
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')))
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
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
def test_xmlExport(self): self.maxDiff = None self.assertEqual(Exercise.fromXMLString(validXML.encode('utf-8')).toXML(), validXML)
def test_importTooRecentSchema(self): invalidXML = validXML.replace('schemaversion="2"', 'schemaversion="1000"') self.assertRaises(VersionMismatchError, lambda : Exercise.fromXMLString(invalidXML.encode('utf-8')))
def test_xmlExport(self): self.maxDiff = None self.assertEqual( Exercise.fromXMLString(validXML.encode('utf-8')).toXML(), validXML)
def test_importTooRecentSchema(self): invalidXML = validXML.replace('schemaversion="2"', 'schemaversion="1000"') self.assertRaises( VersionMismatchError, lambda: Exercise.fromXMLString(invalidXML.encode('utf-8')))