test_ogg_vorbis.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import os
  2. import mutagen
  3. import pytest
  4. from symuid._tag_interface import OggOpus
  5. # pylint: disable=protected-access
  6. @pytest.mark.parametrize('track_name', ['ogg-opus-empty.opus'])
  7. def test_get_track_path(tracks_dir_path, track_name):
  8. track_path = os.path.join(tracks_dir_path, track_name)
  9. iface = OggOpus(mutagen.File(track_path))
  10. assert track_path == iface.track_path
  11. @pytest.mark.parametrize(('track_name', 'tag_label', 'expected_text'), [
  12. ('ogg-opus-empty.opus', 'artist', None),
  13. ('ogg-opus-typical.opus', 'artist', 'some artist'),
  14. ('ogg-opus-typical.opus', 'comment', 'some comment'),
  15. ('ogg-opus-typical.opus', 'com', None),
  16. ('ogg-opus-typical.opus', 'symuid:uuid',
  17. '613ea4ac-a4cf-4026-8e99-1904b2bb5cd0'),
  18. ])
  19. def test__get_single_text(tracks_dir_path, track_name, tag_label, expected_text):
  20. iface = OggOpus(mutagen.File(os.path.join(tracks_dir_path, track_name)))
  21. assert expected_text == iface._get_single_text(tag_label)
  22. @pytest.mark.parametrize(('track_name', 'expected_comment'), [
  23. ('ogg-opus-empty.opus', None),
  24. ('ogg-opus-typical.opus', 'some comment'),
  25. ])
  26. def test_get_comment(tracks_dir_path, track_name, expected_comment):
  27. iface = OggOpus(mutagen.File(os.path.join(tracks_dir_path, track_name)))
  28. assert expected_comment == iface.get_comment()
  29. def test_set_comment(empty_ogg_opus_path):
  30. iface = OggOpus(mutagen.File(empty_ogg_opus_path))
  31. assert iface.get_comment() is None
  32. iface.set_comment('latin')
  33. assert iface.get_comment() == 'latin'
  34. iface.set_comment('你好')
  35. assert iface.get_comment() == '你好'
  36. iface.save()
  37. iface_reread = OggOpus(mutagen.File(empty_ogg_opus_path))
  38. assert iface_reread.get_comment() == '你好'
  39. tags = mutagen.File(iface.track_path).tags
  40. assert len(tags) == 1
  41. assert tags.items()[0] == ('comment', ['你好'])
  42. @pytest.mark.parametrize(('track_name', 'expected_uuid'), [
  43. ('ogg-opus-empty.opus', None),
  44. ('ogg-opus-typical.opus', b'a>\xa4\xac\xa4\xcf@&\x8e\x99\x19\x04\xb2\xbb\\\xd0'),
  45. ])
  46. def test_get_track_uuid(tracks_dir_path, track_name, expected_uuid):
  47. iface = OggOpus(mutagen.File(os.path.join(tracks_dir_path, track_name)))
  48. assert expected_uuid == iface.get_track_uuid()