diff options
author | Olivier Tilloy <olivier@tilloy.net> | 2009-01-27 20:28:45 +0100 |
---|---|---|
committer | Olivier Tilloy <olivier@tilloy.net> | 2009-01-27 20:28:45 +0100 |
commit | e729a212a72a9dbbcaa4a896194290c1bf258ae0 (patch) | |
tree | 7dddb045e3fde7e3b149426f8711dfc195b8f591 | |
parent | 2df704760f64ba36f0190ebc1f8344801d35d3c6 (diff) | |
download | pyexiv2-e729a212a72a9dbbcaa4a896194290c1bf258ae0.tar.gz |
XMP Boolean to string conversion + unit tests.
-rw-r--r-- | src/pyexiv2.py | 15 | ||||
-rw-r--r-- | unittest/xmp.py | 8 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/pyexiv2.py b/src/pyexiv2.py index 5341c86..2c00e2d 100644 --- a/src/pyexiv2.py +++ b/src/pyexiv2.py @@ -615,6 +615,21 @@ class XmpTag(MetadataTag): return value + @staticmethod + def _convert_to_string(value, xtype): + """ + Convert a value to its corresponding string representation. + Fallback to str(value) if no standard-compliant conversion can be done. + """ + if xtype == 'Boolean': + if value == True: + return 'True' + elif value == False: + return 'False' + + # Default fallback conversion + return str(value) + def __str__(self): """ Return a string representation of the XMP tag. diff --git a/unittest/xmp.py b/unittest/xmp.py index 9db9434..09aca55 100644 --- a/unittest/xmp.py +++ b/unittest/xmp.py @@ -46,6 +46,14 @@ class TestXmpTag(unittest.TestCase): # Invalid values: not converted self.assertEqual(XmpTag._convert_to_python('invalid', xtype), 'invalid') + def test_convert_to_string_boolean(self): + xtype = 'Boolean' + # Valid values + self.assertEqual(XmpTag._convert_to_string(True, xtype), 'True') + self.assertEqual(XmpTag._convert_to_string(False, xtype), 'False') + # Invalid values + self.assertEqual(XmpTag._convert_to_string('invalid', xtype), 'invalid') + def test_convert_to_python_choice(self): pass |