From aa3078c01b73ccbea72c8311bdcfff87dc87d6d9 Mon Sep 17 00:00:00 2001 From: phoenix Date: Wed, 16 Apr 2025 20:42:29 -0400 Subject: [PATCH] Refactored test --- src/meta.rs | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/src/meta.rs b/src/meta.rs index 5a6d981..218fa80 100644 --- a/src/meta.rs +++ b/src/meta.rs @@ -19,7 +19,7 @@ pub mod coverart { use lofty::{file::AudioFile, ogg::OggPictureStorage}; - pub fn get_coverart( + pub fn set_coverart( song_filepath: &String, coverart_filepath: &String, ) -> Result, std::io::Error> { @@ -50,6 +50,33 @@ pub mod coverart { Err(err) => Err(err), } } + + pub fn get_coverart(song_filepath: &String) -> Result, std::io::Error> { + match std::fs::File::open(song_filepath) { + Ok(mut file) => { + match lofty::flac::FlacFile::read_from( + &mut file, + lofty::config::ParseOptions::new(), + ) { + Ok(flac_file) => { + let pictures = flac_file.pictures(); + let res = pictures.to_vec(); + if !res.is_empty() { + let picture = &res[0]; + Ok(picture.clone().0.into_data()) + } else { + Ok(Vec::new()) + } + } + Err(err) => Err(std::io::Error::new( + std::io::ErrorKind::InvalidData, + err.to_string(), + )), + } + } + Err(err) => Err(err), + } + } } pub fn get_meta(t: types::Type, filepath: &String) -> Result { @@ -155,12 +182,8 @@ mod tests { let mut file = std::fs::File::create(file)?; match file.write_all(bytes) { - Ok(_res) => { - Ok(()) - } - Err(err) => { - Err(err) - } + Ok(_res) => Ok(()), + Err(err) => Err(err), } } pub fn get_full_path( @@ -853,21 +876,27 @@ mod tests { let temp_file = tempfile::tempdir().expect("Could not create test directory"); let test_dir = String::from(temp_file.path().to_str().unwrap()); - let test_filename = String::from("track08.flac"); - let new_filepath = test_dir.clone() + "/" + &test_filename; + // let test_filename = String::from("track08.flac"); + // let new_filepath = test_dir.clone() + "/" + &test_filename; match file_exists(&dir, &filename) { Ok(_) => { let filepath = get_full_path(&dir, &filename).unwrap(); - match coverart::get_coverart(&filepath, &new_filepath) { + match coverart::get_coverart(&filepath) { Ok(coverart) => { let is_empty = coverart.is_empty(); assert_eq!(is_empty, false, "Should not be empty"); - // Save image + let mut new_coverart_path: String = test_dir.clone(); new_coverart_path += &String::from("/newcovvv.png"); let _ = util::save_bytes_to_file(&coverart, &new_coverart_path); + let created_file = std::path::Path::new(&new_coverart_path); + assert!( + created_file.exists(), + "Error: {:?} has not been created", + new_coverart_path + ); } Err(err) => { assert!(false, "Error: {:?}", err.to_string());