diff --git a/glymur/lib/openjp2.py b/glymur/lib/openjp2.py index d5322ec..d37bbb8 100644 --- a/glymur/lib/openjp2.py +++ b/glymur/lib/openjp2.py @@ -138,6 +138,13 @@ class PocType(ctypes.Structure): ("tx0_t", ctypes.c_uint32), ("ty0_t", ctypes.c_uint32)] + def __str__(self): + msg = "{0}:\n".format(self.__class__) + for field_name, _ in self._fields_: + msg += " {0}: {1}\n".format( + field_name, getattr(self, field_name)) + return msg + class DecompressionParametersType(ctypes.Structure): """Decompression parameters. diff --git a/glymur/test/fixtures.py b/glymur/test/fixtures.py index 1727d6f..3a28626 100644 --- a/glymur/test/fixtures.py +++ b/glymur/test/fixtures.py @@ -919,3 +919,41 @@ decompression_parameters_type = """: + resno0: 0 + compno0: 0 + layno1: 0 + resno1: 0 + compno1: 0 + layno0: 0 + precno0: 0 + precno1: 0 + prg1: 0 + prg: 0 + progorder: b'' + tile: 0 + tx0: 0 + tx1: 0 + ty0: 0 + ty1: 0 + layS: 0 + resS: 0 + compS: 0 + prcS: 0 + layE: 0 + resE: 0 + compE: 0 + prcE: 0 + txS: 0 + txE: 0 + tyS: 0 + tyE: 0 + dx: 0 + dy: 0 + lay_t: 0 + res_t: 0 + comp_t: 0 + prec_t: 0 + tx0_t: 0 + ty0_t: 0""" diff --git a/glymur/test/test_printing.py b/glymur/test/test_printing.py index 8c548b7..8dc0f48 100644 --- a/glymur/test/test_printing.py +++ b/glymur/test/test_printing.py @@ -618,6 +618,7 @@ class TestPrinting(unittest.TestCase): self.assertEqual(actual, expected) +@unittest.skipIf(sys.hexversion < 0x03000000, "do not care about 2.7 here") @unittest.skipIf(re.match('1|2.0', glymur.version.openjpeg_version), "Requires openjpeg 2.1.0 or higher") class TestPrintingOpenjp2(unittest.TestCase): @@ -637,6 +638,16 @@ class TestPrintingOpenjp2(unittest.TestCase): expected = fixtures.decompression_parameters_type self.assertEqual(actual, expected) + def test_progression_order_changes(self): + """printing PocType""" + ptype = glymur.lib.openjp2.PocType() + with patch('sys.stdout', new=StringIO()) as fake_out: + print(ptype) + actual = fake_out.getvalue().strip() + expected = fixtures.default_progression_order_changes_type + self.assertEqual(actual, expected) + + @unittest.skipIf(OPJ_DATA_ROOT is None, "OPJ_DATA_ROOT environment variable not set") @unittest.skipIf(os.name == "nt", "Temporary file issue on window.")