feat: with actual archive test
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
@@ -13,10 +13,8 @@ pub mod extensions {
|
||||
|
||||
use crate::{app::SharedApp, services::release_manager::models::ArtifactID};
|
||||
|
||||
#[mockall_double::double]
|
||||
use crate::services::file_store::FileStore;
|
||||
|
||||
#[mockall_double::double]
|
||||
use super::Archive;
|
||||
use super::ArchiveFile;
|
||||
|
||||
@@ -92,19 +90,15 @@ pub mod extensions {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
use mockall::{automock, mock, predicate::*};
|
||||
|
||||
use super::file_reader::{File, Files};
|
||||
|
||||
#[cfg_attr(test, automock)]
|
||||
impl Archive {
|
||||
pub fn new() -> Self {
|
||||
Self {}
|
||||
}
|
||||
|
||||
pub async fn create_archive(&self, files: Files) -> anyhow::Result<ArchiveFile> {
|
||||
tracing::trace!("archiving files");
|
||||
tracing::trace!("archiving files: {}", files.len());
|
||||
|
||||
let buffer = Vec::new();
|
||||
let cursor = Cursor::new(buffer);
|
||||
@@ -114,9 +108,14 @@ impl Archive {
|
||||
for file in files {
|
||||
let abs_file_path = file.path;
|
||||
|
||||
tracing::trace!("archiving file: {}", abs_file_path.display());
|
||||
let mut fd = std::fs::File::open(&abs_file_path)?;
|
||||
tar_builder.append_file(&abs_file_path, &mut fd)?;
|
||||
if let Some(rel) = file.relative {
|
||||
tracing::trace!("archiving rel file: {}", rel.display());
|
||||
tar_builder.append_file(&rel, &mut fd)?;
|
||||
} else {
|
||||
tracing::trace!("archiving file: {}", abs_file_path.display());
|
||||
tar_builder.append_file(&abs_file_path, &mut fd)?;
|
||||
}
|
||||
}
|
||||
|
||||
tar_builder.finish()?;
|
||||
|
||||
Reference in New Issue
Block a user