diff --git a/Cargo.lock b/Cargo.lock index 65a0b7c9..2413dcb0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1216,13 +1216,14 @@ dependencies = [ [[package]] name = "mockito" -version = "0.31.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f9fece9bd97ab74339fe19f4bcaf52b76dcc18e5364c7977c1838f76b38de9" +checksum = "09c762b6267c4593555bb38f1df19e9318985bc4de60b5e8462890856a9a5b4c" dependencies = [ "assert-json-diff", "colored", - "httparse", + "futures", + "hyper", "lazy_static", "log", "rand", @@ -1230,6 +1231,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "similar", + "tokio", ] [[package]] @@ -2017,9 +2019,21 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "socket2", + "tokio-macros", "windows-sys 0.45.0", ] +[[package]] +name = "tokio-macros" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + [[package]] name = "tokio-native-tls" version = "0.3.0" diff --git a/Cargo.toml b/Cargo.toml index be9449fb..ae4f00fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ keywords = ["cincinnati", "coreos", "fedora", "rpm-ostree"] authors = ["Luca Bruno "] repository = "https://github.com/coreos/zincati" edition = "2021" -rust-version = "1.64.0" +rust-version = "1.65.0" [dependencies] actix = "0.13" @@ -51,7 +51,7 @@ zbus = "3" [dev-dependencies] http = "0.2" -mockito = "0.31" +mockito = "1.1" proptest = "1.2" tempfile = "^3.7" diff --git a/src/cincinnati/mock_tests.rs b/src/cincinnati/mock_tests.rs index f1c2635e..fdb54f50 100644 --- a/src/cincinnati/mock_tests.rs +++ b/src/cincinnati/mock_tests.rs @@ -6,17 +6,19 @@ use tokio::runtime as rt; #[test] fn test_empty_graph() { + let mut server = mockito::Server::new(); let empty_graph = r#"{ "nodes": [], "edges": [] }"#; - let m_graph = mockito::mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) - .match_header("accept", Matcher::Regex("application/json".to_string())) - .with_body(empty_graph) + let m_graph = server + .mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) .with_status(200) + .with_header("accept", "application/json") + .with_body(empty_graph) .create(); let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); let client = Cincinnati { - base_url: mockito::server_url(), + base_url: server.url(), }; let update = runtime.block_on(client.next_update(&id, BTreeSet::new(), false)); m_graph.assert(); diff --git a/src/fleet_lock/mock_tests.rs b/src/fleet_lock/mock_tests.rs index 6e0e6e4b..914cf166 100644 --- a/src/fleet_lock/mock_tests.rs +++ b/src/fleet_lock/mock_tests.rs @@ -5,6 +5,7 @@ use tokio::runtime as rt; #[test] fn test_pre_reboot_lock() { + let mut server = mockito::Server::new(); let body = r#" { "client_params": { @@ -13,7 +14,9 @@ fn test_pre_reboot_lock() { } } "#; - let m_pre_reboot = mockito::mock("POST", Matcher::Exact(format!("/{}", V1_PRE_REBOOT))) + + let m_pre_reboot = server + .mock("POST", Matcher::Exact(format!("/{}", V1_PRE_REBOOT))) .match_header("fleet-lock-protocol", "true") .match_body(Matcher::PartialJsonString(body.to_string())) .with_status(200) @@ -21,9 +24,7 @@ fn test_pre_reboot_lock() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); - let client = ClientBuilder::new(mockito::server_url(), &id) - .build() - .unwrap(); + let client = ClientBuilder::new(server.url(), &id).build().unwrap(); let res = runtime.block_on(client.pre_reboot()); m_pre_reboot.assert(); @@ -33,13 +34,15 @@ fn test_pre_reboot_lock() { #[test] fn test_pre_reboot_error() { + let mut server = mockito::Server::new(); let body = r#" { "kind": "f1", "value": "pre-reboot failure" } "#; - let m_pre_reboot = mockito::mock("POST", Matcher::Exact(format!("/{}", V1_PRE_REBOOT))) + let m_pre_reboot = server + .mock("POST", Matcher::Exact(format!("/{}", V1_PRE_REBOOT))) .match_header("fleet-lock-protocol", "true") .with_status(404) .with_body(body) @@ -47,9 +50,7 @@ fn test_pre_reboot_error() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); - let client = ClientBuilder::new(mockito::server_url(), &id) - .build() - .unwrap(); + let client = ClientBuilder::new(server.url(), &id).build().unwrap(); let res = runtime.block_on(client.pre_reboot()); m_pre_reboot.assert(); @@ -58,6 +59,7 @@ fn test_pre_reboot_error() { #[test] fn test_steady_state_lock() { + let mut server = mockito::Server::new(); let body = r#" { "client_params": { @@ -66,7 +68,8 @@ fn test_steady_state_lock() { } } "#; - let m_steady_state = mockito::mock("POST", Matcher::Exact(format!("/{}", V1_STEADY_STATE))) + let m_steady_state = server + .mock("POST", Matcher::Exact(format!("/{}", V1_STEADY_STATE))) .match_header("fleet-lock-protocol", "true") .match_body(Matcher::PartialJsonString(body.to_string())) .with_status(200) @@ -74,9 +77,7 @@ fn test_steady_state_lock() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); - let client = ClientBuilder::new(mockito::server_url(), &id) - .build() - .unwrap(); + let client = ClientBuilder::new(server.url(), &id).build().unwrap(); let res = runtime.block_on(client.steady_state()); m_steady_state.assert(); @@ -86,13 +87,15 @@ fn test_steady_state_lock() { #[test] fn test_steady_state_error() { + let mut server = mockito::Server::new(); let body = r#" { "kind": "f1", "value": "pre-reboot failure" } "#; - let m_steady_state = mockito::mock("POST", Matcher::Exact(format!("/{}", V1_STEADY_STATE))) + let m_steady_state = server + .mock("POST", Matcher::Exact(format!("/{}", V1_STEADY_STATE))) .match_header("fleet-lock-protocol", "true") .with_status(404) .with_body(body) @@ -100,9 +103,7 @@ fn test_steady_state_error() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); - let client = ClientBuilder::new(mockito::server_url(), &id) - .build() - .unwrap(); + let client = ClientBuilder::new(server.url(), &id).build().unwrap(); let res = runtime.block_on(client.steady_state()); m_steady_state.assert(); diff --git a/src/rpm_ostree/mock_tests.rs b/src/rpm_ostree/mock_tests.rs index 7c63e72a..6a9b760e 100644 --- a/src/rpm_ostree/mock_tests.rs +++ b/src/rpm_ostree/mock_tests.rs @@ -6,6 +6,7 @@ use tokio::runtime as rt; #[test] fn test_simple_graph() { + let mut server = mockito::Server::new(); let simple_graph = r#" { "nodes": [ @@ -35,7 +36,8 @@ fn test_simple_graph() { } "#; - let m_graph = mockito::mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) + let m_graph = server + .mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) .match_header("accept", Matcher::Regex("application/json".to_string())) .with_body(simple_graph) .with_status(200) @@ -44,7 +46,7 @@ fn test_simple_graph() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); let client = Cincinnati { - base_url: mockito::server_url(), + base_url: server.url(), }; let update = runtime.block_on(client.fetch_update_hint(&id, BTreeSet::new(), false)); m_graph.assert(); @@ -55,6 +57,7 @@ fn test_simple_graph() { #[test] fn test_downgrade() { + let mut server = mockito::Server::new(); let simple_graph = r#" { "nodes": [ @@ -84,7 +87,8 @@ fn test_downgrade() { } "#; - let m_graph = mockito::mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) + let m_graph = server + .mock("GET", Matcher::Regex(r"^/v1/graph?.+$".to_string())) .match_header("accept", Matcher::Regex("application/json".to_string())) .with_body(simple_graph) .with_status(200) @@ -94,7 +98,7 @@ fn test_downgrade() { let runtime = rt::Runtime::new().unwrap(); let id = Identity::mock_default(); let client = Cincinnati { - base_url: mockito::server_url(), + base_url: server.url(), }; // Downgrades denied.