소스 검색

fix: use local time for raw debug logs

codex/lq-token-test-init
orangels 1 개월 전
부모
커밋
506434da6a
1개의 변경된 파일24개의 추가작업 그리고 3개의 파일을 삭제
  1. +24
    -3
      src/runner.rs

+ 24
- 3
src/runner.rs 파일 보기

@@ -1,7 +1,7 @@
use crate::config::ProtocolKind;
use crate::protocols;
use anyhow::{Context, Result};
use chrono::Utc;
use chrono::Local;
use reqwest::Client;
use reqwest::header::HeaderMap;
use serde::Serialize;
@@ -102,7 +102,7 @@ impl RawDebugConfig {
}

async fn write_debug_file(&self, response_kind: &str, contents: &str) -> Result<PathBuf> {
let now = Utc::now();
let now = Local::now();
let dated_output_dir = self.output_dir.join(now.format("%Y%m%d").to_string());
tokio::fs::create_dir_all(&dated_output_dir)
.await
@@ -113,7 +113,7 @@ impl RawDebugConfig {
)
})?;
let sequence = self.counter.fetch_add(1, Ordering::Relaxed) + 1;
let timestamp = now.format("%Y%m%dT%H%M%S%.3fZ");
let timestamp = now.format("%Y%m%dT%H%M%S%.3f%z");
let filename = format!(
"{}-{}-{sequence:06}-{}.txt",
self.prefix,
@@ -324,4 +324,25 @@ mod tests {
assert!(components[0].chars().all(|ch| ch.is_ascii_digit()));
assert!(components[1].ends_with("-response-kind.txt"));
}

#[tokio::test]
async fn raw_debug_uses_local_time_for_directory_and_filename() {
let temp_dir = tempfile::tempdir().expect("create temp dir");
let raw_debug = RawDebugConfig::new(temp_dir.path().join("debug"), "model/test".into());

let path = raw_debug
.write_response("response-kind", "body")
.await
.expect("write debug response");

let local_now = chrono::Local::now();
let local_date = local_now.format("%Y%m%d").to_string();
let local_hour_prefix = local_now.format("%Y%m%dT%H").to_string();
let filename = path.file_name().expect("debug filename").to_string_lossy();

assert!(path.starts_with(temp_dir.path().join("debug").join(local_date)));
assert!(filename.contains(&local_hour_prefix));
assert!(filename.contains(&local_now.format("%z").to_string()));
assert!(!filename.contains('Z'));
}
}

불러오는 중...
취소
저장