|
@@ -57,3 +57,27 @@ def test_get_free_int_ratio(empty_mp4_path, nominator, denominator):
|
|
|
mutagen_file.save()
|
|
|
mp4_iface = MP4(mutagen.File(empty_mp4_path))
|
|
|
assert mp4_iface.get_free_int_ratio('foo:bar') == (nominator, denominator)
|
|
|
+
|
|
|
+
|
|
|
+@pytest.mark.parametrize(('integer', 'expected_tag_data'), [
|
|
|
+ (0, b'\x00'),
|
|
|
+ (4, b'\x04'),
|
|
|
+ (-1, b'\xff'),
|
|
|
+ (-2, b'\xfe'),
|
|
|
+ (2**6, b'\x40'),
|
|
|
+ (2**7-1, b'\x7f'),
|
|
|
+ (2**7, b'\x00\x80'),
|
|
|
+ (2**8, b'\x01\x00'),
|
|
|
+ (2**24, b'\x01\x00\x00\x00'),
|
|
|
+ (2**31-1, b'\x7f\xff\xff\xff'),
|
|
|
+])
|
|
|
+def test_set_free_int(empty_mp4_path, integer, expected_tag_data):
|
|
|
+ mp4_iface = MP4(mutagen.File(empty_mp4_path))
|
|
|
+ mp4_iface.set_free_int('foo:bar', integer)
|
|
|
+ mp4_iface.save()
|
|
|
+ mutagen_file = mutagen.File(empty_mp4_path)
|
|
|
+ assert len(mutagen_file.tags) == 1
|
|
|
+ tag, = mutagen_file.get('----:foo:bar')
|
|
|
+ assert tag.dataformat == mutagen.mp4.AtomDataType.INTEGER
|
|
|
+ assert bytes(tag) == expected_tag_data
|
|
|
+ assert MP4._freeform_to_int(tag) == integer
|