vfmt: весь код в формате V master (без изменений логики)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4c9184aeb2
commit
6161a7faaa
12 files changed
+405
-287
No files matched your search
+70
-70
@@ -3,7 +3,7 @@ import metadata
|
||||
|
||||
// Проверка чтения id3v23
|
||||
fn test_idv3v23() {
|
||||
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
||||
mut audio := os.open('./data/test_id3v23.mp3') or { panic(err) }
|
||||
defer {
|
||||
audio.close()
|
||||
}
|
||||
@@ -16,29 +16,29 @@ fn test_idv3v23() {
|
||||
wav.id3v23.get_full_size(mut audio)
|
||||
wav.id3v23.fill_tags(mut audio)
|
||||
|
||||
assert wav.id3v23.tit2.data == "Test Title"
|
||||
assert wav.id3v23.tpe1.data == "Test Author"
|
||||
assert wav.id3v23.tpe2.data == "Test Narator"
|
||||
assert wav.id3v23.talb.data == "Test Album"
|
||||
assert wav.id3v23.tyer.data == "2026"
|
||||
assert wav.id3v23.trck.data == "6/7"
|
||||
assert wav.id3v23.tcon.data == "Rock"
|
||||
assert wav.id3v23.tcop.data == "Test"
|
||||
assert wav.id3v23.txxx.data == "comment"
|
||||
assert wav.id3v23.tit2.data == 'Test Title'
|
||||
assert wav.id3v23.tpe1.data == 'Test Author'
|
||||
assert wav.id3v23.tpe2.data == 'Test Narator'
|
||||
assert wav.id3v23.talb.data == 'Test Album'
|
||||
assert wav.id3v23.tyer.data == '2026'
|
||||
assert wav.id3v23.trck.data == '6/7'
|
||||
assert wav.id3v23.tcon.data == 'Rock'
|
||||
assert wav.id3v23.tcop.data == 'Test'
|
||||
assert wav.id3v23.txxx.data == 'comment'
|
||||
|
||||
id3v1 := wav.id3v23.to_v1()
|
||||
|
||||
assert id3v1.genre == "Rock"
|
||||
assert id3v1.title == "Test Title"
|
||||
assert id3v1.artist == "Test Narator"
|
||||
assert id3v1.album == "Test Album"
|
||||
assert id3v1.track == "6"
|
||||
assert id3v1.year == "2026"
|
||||
assert id3v1.comment == "comment"
|
||||
assert id3v1.genre == 'Rock'
|
||||
assert id3v1.title == 'Test Title'
|
||||
assert id3v1.artist == 'Test Narator'
|
||||
assert id3v1.album == 'Test Album'
|
||||
assert id3v1.track == '6'
|
||||
assert id3v1.year == '2026'
|
||||
assert id3v1.comment == 'comment'
|
||||
}
|
||||
|
||||
fn test_writeidv3v23() {
|
||||
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
||||
mut audio := os.open('./data/test_id3v23.mp3') or { panic(err) }
|
||||
defer {
|
||||
audio.close()
|
||||
}
|
||||
@@ -52,23 +52,23 @@ fn test_writeidv3v23() {
|
||||
wav.id3v23.fill_tags(mut audio)
|
||||
|
||||
// Изменение значений тэга
|
||||
wav.id3v23.tit2.set_data("Test Title2")
|
||||
wav.id3v23.tpe1.set_data("Test Author2")
|
||||
wav.id3v23.tpe2.set_data("Test Narator2")
|
||||
wav.id3v23.talb.set_data("Test Album2")
|
||||
wav.id3v23.tyer.set_data("2027")
|
||||
wav.id3v23.trck.set_data("7/7")
|
||||
wav.id3v23.tcon.set_data("Rock2")
|
||||
wav.id3v23.tcop.set_data("Test2")
|
||||
wav.id3v23.txxx.set_data("comment2")
|
||||
wav.id3v23.tit2.set_data('Test Title2')
|
||||
wav.id3v23.tpe1.set_data('Test Author2')
|
||||
wav.id3v23.tpe2.set_data('Test Narator2')
|
||||
wav.id3v23.talb.set_data('Test Album2')
|
||||
wav.id3v23.tyer.set_data('2027')
|
||||
wav.id3v23.trck.set_data('7/7')
|
||||
wav.id3v23.tcon.set_data('Rock2')
|
||||
wav.id3v23.tcop.set_data('Test2')
|
||||
wav.id3v23.txxx.set_data('comment2')
|
||||
|
||||
wav.id3v23.encode_embed_tags()
|
||||
wav.id3v23.insert_tags_into_audio(mut audio) or { panic(err) }
|
||||
|
||||
os.write_bytes("./data/temp_v23.mp3", wav.id3v23.encoded_header) or { panic(err) }
|
||||
os.write_bytes('./data/temp_v23.mp3', wav.id3v23.encoded_header) or { panic(err) }
|
||||
|
||||
// Чтение файла и проверка записи
|
||||
mut temp_audio := os.open("./data/temp_v23.mp3") or { panic(err) }
|
||||
mut temp_audio := os.open('./data/temp_v23.mp3') or { panic(err) }
|
||||
defer {
|
||||
temp_audio.close()
|
||||
}
|
||||
@@ -82,31 +82,31 @@ fn test_writeidv3v23() {
|
||||
temp_wav.id3v23.get_full_size(mut temp_audio)
|
||||
temp_wav.id3v23.fill_tags(mut temp_audio)
|
||||
|
||||
assert temp_wav.id3v23.tit2.data == "Test Title2"
|
||||
assert temp_wav.id3v23.tpe1.data == "Test Author2"
|
||||
assert temp_wav.id3v23.tpe2.data == "Test Narator2"
|
||||
assert temp_wav.id3v23.talb.data == "Test Album2"
|
||||
assert temp_wav.id3v23.tyer.data == "2027"
|
||||
assert temp_wav.id3v23.trck.data == "7/7"
|
||||
assert temp_wav.id3v23.tcon.data == "Rock2"
|
||||
assert temp_wav.id3v23.tcop.data == "Test2"
|
||||
assert temp_wav.id3v23.txxx.data == "comment2"
|
||||
assert temp_wav.id3v23.tit2.data == 'Test Title2'
|
||||
assert temp_wav.id3v23.tpe1.data == 'Test Author2'
|
||||
assert temp_wav.id3v23.tpe2.data == 'Test Narator2'
|
||||
assert temp_wav.id3v23.talb.data == 'Test Album2'
|
||||
assert temp_wav.id3v23.tyer.data == '2027'
|
||||
assert temp_wav.id3v23.trck.data == '7/7'
|
||||
assert temp_wav.id3v23.tcon.data == 'Rock2'
|
||||
assert temp_wav.id3v23.tcop.data == 'Test2'
|
||||
assert temp_wav.id3v23.txxx.data == 'comment2'
|
||||
|
||||
// Проверяется прочитанный с диска тэг, а не тот, что в памяти
|
||||
id3v1 := temp_wav.id3v23.to_v1()
|
||||
|
||||
assert id3v1.genre == "Rock2"
|
||||
assert id3v1.title == "Test Title2"
|
||||
assert id3v1.artist == "Test Narator2"
|
||||
assert id3v1.album == "Test Album2"
|
||||
assert id3v1.track == "7"
|
||||
assert id3v1.year == "2027"
|
||||
assert id3v1.comment == "comment2"
|
||||
assert id3v1.genre == 'Rock2'
|
||||
assert id3v1.title == 'Test Title2'
|
||||
assert id3v1.artist == 'Test Narator2'
|
||||
assert id3v1.album == 'Test Album2'
|
||||
assert id3v1.track == '7'
|
||||
assert id3v1.year == '2027'
|
||||
assert id3v1.comment == 'comment2'
|
||||
}
|
||||
|
||||
// Проверка чтения id3v24
|
||||
fn test_idv3v24() {
|
||||
mut audio := os.open("./data/test_id3v24.mp3") or { panic(err) }
|
||||
mut audio := os.open('./data/test_id3v24.mp3') or { panic(err) }
|
||||
defer {
|
||||
audio.close()
|
||||
}
|
||||
@@ -119,30 +119,30 @@ fn test_idv3v24() {
|
||||
wav.id3v24.get_full_size(mut audio)
|
||||
wav.id3v24.fill_tags(mut audio)
|
||||
|
||||
assert wav.id3v24.tit2.data == "Test Title"
|
||||
assert wav.id3v24.tpe1.data == "Test Author"
|
||||
assert wav.id3v24.tpe2.data == "Test Narator"
|
||||
assert wav.id3v24.talb.data == "Test Album"
|
||||
assert wav.id3v24.tdrc.data == "2026"
|
||||
assert wav.id3v24.trck.data == "6/7"
|
||||
assert wav.id3v24.tcon.data == "Rock"
|
||||
assert wav.id3v24.tcop.data == "Test"
|
||||
assert wav.id3v24.txxx.data == "comment"
|
||||
assert wav.id3v24.tit2.data == 'Test Title'
|
||||
assert wav.id3v24.tpe1.data == 'Test Author'
|
||||
assert wav.id3v24.tpe2.data == 'Test Narator'
|
||||
assert wav.id3v24.talb.data == 'Test Album'
|
||||
assert wav.id3v24.tdrc.data == '2026'
|
||||
assert wav.id3v24.trck.data == '6/7'
|
||||
assert wav.id3v24.tcon.data == 'Rock'
|
||||
assert wav.id3v24.tcop.data == 'Test'
|
||||
assert wav.id3v24.txxx.data == 'comment'
|
||||
|
||||
id3v1 := wav.id3v24.to_v1()
|
||||
|
||||
assert id3v1.genre == "Rock"
|
||||
assert id3v1.title == "Test Title"
|
||||
assert id3v1.artist == "Test Narator"
|
||||
assert id3v1.album == "Test Album"
|
||||
assert id3v1.track == "6"
|
||||
assert id3v1.year == "2026"
|
||||
assert id3v1.comment == "comment"
|
||||
assert id3v1.genre == 'Rock'
|
||||
assert id3v1.title == 'Test Title'
|
||||
assert id3v1.artist == 'Test Narator'
|
||||
assert id3v1.album == 'Test Album'
|
||||
assert id3v1.track == '6'
|
||||
assert id3v1.year == '2026'
|
||||
assert id3v1.comment == 'comment'
|
||||
}
|
||||
|
||||
// Кириллица во фрейме с кодировкой ISO-8859-1 не должна превращаться в '?'
|
||||
fn test_write_unicode_into_latin1_frame() {
|
||||
mut audio := os.open("./data/test_id3v23.mp3") or { panic(err) }
|
||||
mut audio := os.open('./data/test_id3v23.mp3') or { panic(err) }
|
||||
defer {
|
||||
audio.close()
|
||||
}
|
||||
@@ -152,11 +152,11 @@ fn test_write_unicode_into_latin1_frame() {
|
||||
wav.id3v23.fill_tags(mut audio)
|
||||
old_size := int(wav.id3v23.size)
|
||||
|
||||
wav.id3v23.tit2.set_data("Глава 2")
|
||||
wav.id3v23.tit2.set_data('Глава 2')
|
||||
wav.id3v23.encode_embed_tags()
|
||||
wav.id3v23.insert_tags_into_audio(mut audio) or { panic(err) }
|
||||
|
||||
temp_path := os.join_path(os.temp_dir(), "id3_editor_unicode_test.mp3")
|
||||
temp_path := os.join_path(os.temp_dir(), 'id3_editor_unicode_test.mp3')
|
||||
os.write_bytes(temp_path, wav.id3v23.encoded_header) or { panic(err) }
|
||||
defer {
|
||||
os.rm(temp_path) or {}
|
||||
@@ -171,19 +171,19 @@ fn test_write_unicode_into_latin1_frame() {
|
||||
temp_wav.id3v23.get_full_size(mut temp_audio)
|
||||
temp_wav.id3v23.fill_tags(mut temp_audio)
|
||||
|
||||
assert temp_wav.id3v23.tit2.data == "Глава 2"
|
||||
assert temp_wav.id3v23.tit2.data == 'Глава 2'
|
||||
// Нетронутые фреймы и аудио сохраняются без изменений
|
||||
assert temp_wav.id3v23.tpe1.data == "Test Author"
|
||||
assert temp_wav.id3v23.tpe1.data == 'Test Author'
|
||||
assert temp_wav.id3v23.others.len == 1
|
||||
|
||||
original := os.read_bytes("./data/test_id3v23.mp3") or { panic(err) }
|
||||
original := os.read_bytes('./data/test_id3v23.mp3') or { panic(err) }
|
||||
written := os.read_bytes(temp_path) or { panic(err) }
|
||||
assert written[int(temp_wav.id3v23.size) + 10..] == original[old_size + 10..]
|
||||
}
|
||||
|
||||
// Вставка в файл без тэга ID3v2 возвращает ошибку, а не падает
|
||||
fn test_insert_without_id3v2() {
|
||||
mut audio := os.open("./data/test_id3v1.mp3") or { panic(err) }
|
||||
mut audio := os.open('./data/test_id3v1.mp3') or { panic(err) }
|
||||
defer {
|
||||
audio.close()
|
||||
}
|
||||
@@ -191,7 +191,7 @@ fn test_insert_without_id3v2() {
|
||||
wav.id3v23.encode_embed_tags()
|
||||
|
||||
wav.id3v23.insert_tags_into_audio(mut audio) or {
|
||||
assert err.msg() == "в файле нет тэга ID3v2"
|
||||
assert err.msg() == 'в файле нет тэга ID3v2'
|
||||
return
|
||||
}
|
||||
assert false, 'Ошибка не возвращена'
|
||||
|
||||
Reference in new issue
Block a user