diff --git a/Cargo.lock b/Cargo.lock index 2ebc653..c3f8e6b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2198,6 +2198,7 @@ dependencies = [ "rstest", "serde", "sha3", + "temp-env", "thiserror", "time", "tokio", @@ -2567,6 +2568,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "temp-env" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050" +dependencies = [ + "parking_lot", +] + [[package]] name = "termtree" version = "0.4.1" diff --git a/Cargo.toml b/Cargo.toml index 3b3ecdf..f4418ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,6 +34,7 @@ time = "0.3.36" assert_cmd = "2.0.14" criterion = { version = "0.5.1", features = ["html_reports"] } rstest = "0.22.0" +temp-env = "0.3.6" [[bench]] name = "main" diff --git a/src/logging.rs b/src/logging.rs index 2972ea8..840abd8 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -33,13 +33,16 @@ mod tests { #[case("DEBUG")] #[case("TRACE")] fn get_valid_subscriber(#[case] log_level: String) { - env::set_var("RUST_LOG", &log_level); - assert!(get_subscriber(false).is_ok()); + temp_env::with_var("RUST_LOG", Some(&log_level), || { + assert!(get_subscriber(false).is_ok()); + env::remove_var("RUST_LOG"); + }); } #[rstest] fn err_if_level_not_set() { - env::remove_var("RUST_LOG"); - assert!(get_subscriber(false).is_err()); + temp_env::with_var("RUST_LOG", None::<&str>, || { + assert!(get_subscriber(false).is_err()); + }); } }