diff --git a/glymur/test/test_jp2box_xml.py b/glymur/test/test_jp2box_xml.py index ba1ff15..0bd9a59 100644 --- a/glymur/test/test_jp2box_xml.py +++ b/glymur/test/test_jp2box_xml.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ Test suite specifically targeting JP2 box layout. """ @@ -94,8 +95,6 @@ class TestXML(unittest.TestCase): with self.assertRaises((IOError, OSError)): glymur.jp2box.XMLBox(filename=self.xmlfile, xml=xml_object) - @unittest.skipIf(os.name == "nt", - "Problems using NamedTemporaryFile on windows.") def test_basic_xml(self): """Should be able to write a basic XMLBox""" j2k = Jp2k(self.j2kfile) @@ -116,8 +115,26 @@ class TestXML(unittest.TestCase): self.assertEqual(ET.tostring(jp2.box[3].xml.getroot()), b'0') - @unittest.skipIf(os.name == "nt", - "Problems using NamedTemporaryFile on windows.") + def test_utf8_xml(self): + """Should be able to write/read an XMLBox with utf-8 encoding.""" + j2k = Jp2k(self.j2kfile) + + self.jp2h.box = [self.ihdr, self.colr] + + xml_header = u'' + xml_string = u'Россия' + the_xml = ET.fromstring((xml_header + xml_string).encode('utf-8')) + xmlb = glymur.jp2box.XMLBox(xml=the_xml) + self.assertEqual(ET.tostring(xmlb.xml, encoding='utf-8').decode('utf-8'), xml_string) + + boxes = [self.jp2b, self.ftyp, self.jp2h, xmlb, self.jp2c] + + with tempfile.NamedTemporaryFile(suffix=".jp2") as tfile: + j2k.wrap(tfile.name, boxes=boxes) + jp2 = Jp2k(tfile.name) + self.assertEqual(ET.tostring(jp2.box[3].xml.getroot(), encoding='utf-8').decode('utf-8'), + xml_string) + def test_xml_from_file(self): """Must be able to create an XML box from an XML file.""" j2k = Jp2k(self.j2kfile)