diff options
author | Sven-Hendrik Haase <svenstaro@gmail.com> | 2025-02-06 04:18:20 +0000 |
---|---|---|
committer | Sven-Hendrik Haase <svenstaro@gmail.com> | 2025-02-06 04:18:20 +0000 |
commit | 57f02a1587555176f1b43b001e7846ac9eb2e949 (patch) | |
tree | 6585f2d404ae55506f4e25985ce663cea7092788 | |
parent | Get rid of server_no_stderr (diff) | |
download | miniserve-57f02a1587555176f1b43b001e7846ac9eb2e949.tar.gz miniserve-57f02a1587555176f1b43b001e7846ac9eb2e949.zip |
Clean up and modernize rstest usage
We still had some old-style syntax in there.
-rw-r--r-- | tests/archive.rs | 6 | ||||
-rw-r--r-- | tests/auth.rs | 126 | ||||
-rw-r--r-- | tests/auth_file.rs | 40 | ||||
-rw-r--r-- | tests/header.rs | 9 | ||||
-rw-r--r-- | tests/navigation.rs | 19 | ||||
-rw-r--r-- | tests/raw.rs | 35 | ||||
-rw-r--r-- | tests/readme.rs | 40 |
7 files changed, 127 insertions, 148 deletions
diff --git a/tests/archive.rs b/tests/archive.rs index 5f34ade..a8b5ed2 100644 --- a/tests/archive.rs +++ b/tests/archive.rs @@ -58,8 +58,10 @@ fn test_tar_archives(#[with(&["-g"])] server: TestServer) -> Result<(), Error> { } #[rstest] -#[case(server(&["--disable-indexing", "--enable-tar-gz", "--enable-tar", "--enable-zip"]))] -fn archives_are_disabled_when_indexing_disabled(#[case] server: TestServer) -> Result<(), Error> { +fn archives_are_disabled_when_indexing_disabled( + #[with(&["--disable-indexing", "--enable-tar-gz", "--enable-tar", "--enable-zip"])] + server: TestServer, +) -> Result<(), Error> { // Ensure the links to the archives are not present let body = reqwest::blocking::get(server.url())?; let parsed = Document::from_read(body)?; diff --git a/tests/auth.rs b/tests/auth.rs index 545bcbf..efa7827 100644 --- a/tests/auth.rs +++ b/tests/auth.rs @@ -7,24 +7,22 @@ mod fixtures; use crate::fixtures::{server, Error, FILES}; -#[rstest( - cli_auth_arg, client_username, client_password, - case("testuser:testpassword", "testuser", "testpassword"), - case( - "testuser:sha256:9f735e0df9a1ddc702bf0a1a7b83033f9f7153a00c29de82cedadc9957289b05", - "testuser", - "testpassword" - ), - case( - "testuser:sha512:e9e633097ab9ceb3e48ec3f70ee2beba41d05d5420efee5da85f97d97005727587fda33ef4ff2322088f4c79e8133cc9cd9f3512f4d3a303cbdb5bc585415a00", - "testuser", - "testpassword" - ), +#[rstest] +#[case("testuser:testpassword", "testuser", "testpassword")] +#[case( + "testuser:sha256:9f735e0df9a1ddc702bf0a1a7b83033f9f7153a00c29de82cedadc9957289b05", + "testuser", + "testpassword" +)] +#[case( + "testuser:sha512:e9e633097ab9ceb3e48ec3f70ee2beba41d05d5420efee5da85f97d97005727587fda33ef4ff2322088f4c79e8133cc9cd9f3512f4d3a303cbdb5bc585415a00", + "testuser", + "testpassword" )] fn auth_accepts( - cli_auth_arg: &str, - client_username: &str, - client_password: &str, + #[case] cli_auth_arg: &str, + #[case] client_username: &str, + #[case] client_password: &str, ) -> Result<(), Error> { let server = server(&["-a", cli_auth_arg]); let client = Client::new(); @@ -45,35 +43,33 @@ fn auth_accepts( Ok(()) } -#[rstest( - cli_auth_arg, client_username, client_password, - case("rightuser:rightpassword", "wronguser", "rightpassword"), - case( - "rightuser:sha256:314eee236177a721d0e58d3ca4ff01795cdcad1e8478ba8183a2e58d69c648c0", - "wronguser", - "rightpassword" - ), - case( - "rightuser:sha512:84ec4056571afeec9f5b59453305877e9a66c3f9a1d91733fde759b370c1d540b9dc58bfc88c5980ad2d020c3a8ee84f21314a180856f5a82ba29ecba29e2cab", - "wronguser", - "rightpassword" - ), - case("rightuser:rightpassword", "rightuser", "wrongpassword"), - case( - "rightuser:sha256:314eee236177a721d0e58d3ca4ff01795cdcad1e8478ba8183a2e58d69c648c0", - "rightuser", - "wrongpassword" - ), - case( - "rightuser:sha512:84ec4056571afeec9f5b59453305877e9a66c3f9a1d91733fde759b370c1d540b9dc58bfc88c5980ad2d020c3a8ee84f21314a180856f5a82ba29ecba29e2cab", - "rightuser", - "wrongpassword" - ), +#[rstest] +#[case("rightuser:rightpassword", "wronguser", "rightpassword")] +#[case( + "rightuser:sha256:314eee236177a721d0e58d3ca4ff01795cdcad1e8478ba8183a2e58d69c648c0", + "wronguser", + "rightpassword" +)] +#[case( + "rightuser:sha512:84ec4056571afeec9f5b59453305877e9a66c3f9a1d91733fde759b370c1d540b9dc58bfc88c5980ad2d020c3a8ee84f21314a180856f5a82ba29ecba29e2cab", + "wronguser", + "rightpassword" +)] +#[case("rightuser:rightpassword", "rightuser", "wrongpassword")] +#[case( + "rightuser:sha256:314eee236177a721d0e58d3ca4ff01795cdcad1e8478ba8183a2e58d69c648c0", + "rightuser", + "wrongpassword" +)] +#[case( + "rightuser:sha512:84ec4056571afeec9f5b59453305877e9a66c3f9a1d91733fde759b370c1d540b9dc58bfc88c5980ad2d020c3a8ee84f21314a180856f5a82ba29ecba29e2cab", + "rightuser", + "wrongpassword" )] fn auth_rejects( - cli_auth_arg: &str, - client_username: &str, - client_password: &str, + #[case] cli_auth_arg: &str, + #[case] client_username: &str, + #[case] client_password: &str, ) -> Result<(), Error> { let server = server(&["-a", cli_auth_arg]); let client = Client::new(); @@ -105,17 +101,17 @@ static ACCOUNTS: &[&str] = &[ // pwd5 ]; -#[rstest( - username, - password, - case("usr0", "pwd0"), - case("usr1", "pwd1"), - case("usr2", "pwd2"), - case("usr3", "pwd3"), - case("usr4", "pwd4"), - case("usr5", "pwd5") -)] -fn auth_multiple_accounts_pass(username: &str, password: &str) -> Result<(), Error> { +#[rstest] +#[case("usr0", "pwd0")] +#[case("usr1", "pwd1")] +#[case("usr2", "pwd2")] +#[case("usr3", "pwd3")] +#[case("usr4", "pwd4")] +#[case("usr5", "pwd5")] +fn auth_multiple_accounts_pass( + #[case] username: &str, + #[case] password: &str, +) -> Result<(), Error> { let server = server(ACCOUNTS); let client = Client::new(); @@ -152,17 +148,17 @@ fn auth_multiple_accounts_wrong_username() -> Result<(), Error> { Ok(()) } -#[rstest( - username, - password, - case("usr0", "pwd5"), - case("usr1", "pwd4"), - case("usr2", "pwd3"), - case("usr3", "pwd2"), - case("usr4", "pwd1"), - case("usr5", "pwd0") -)] -fn auth_multiple_accounts_wrong_password(username: &str, password: &str) -> Result<(), Error> { +#[rstest] +#[case("usr0", "pwd5")] +#[case("usr1", "pwd4")] +#[case("usr2", "pwd3")] +#[case("usr3", "pwd2")] +#[case("usr4", "pwd1")] +#[case("usr5", "pwd0")] +fn auth_multiple_accounts_wrong_password( + #[case] username: &str, + #[case] password: &str, +) -> Result<(), Error> { let server = server(ACCOUNTS); let client = Client::new(); diff --git a/tests/auth_file.rs b/tests/auth_file.rs index eb40d2c..5632d46 100644 --- a/tests/auth_file.rs +++ b/tests/auth_file.rs @@ -4,22 +4,17 @@ use select::{document::Document, predicate::Text}; mod fixtures; -use crate::fixtures::{server, Error, FILES}; +use crate::fixtures::{server, Error, TestServer, FILES}; -#[rstest( - cli_auth_file_arg, - client_username, - client_password, - case("tests/data/auth1.txt", "joe", "123"), - case("tests/data/auth1.txt", "bob", "123"), - case("tests/data/auth1.txt", "bill", "") -)] +#[rstest] +#[case("joe", "123")] +#[case("bob", "123")] +#[case("bill", "")] fn auth_file_accepts( - cli_auth_file_arg: &str, - client_username: &str, - client_password: &str, + #[with(&["--auth-file", "tests/data/auth1.txt"])] server: TestServer, + #[case] client_username: &str, + #[case] client_password: &str, ) -> Result<(), Error> { - let server = server(&["--auth-file", cli_auth_file_arg]); let client = Client::new(); let response = client .get(server.url()) @@ -38,20 +33,15 @@ fn auth_file_accepts( Ok(()) } -#[rstest( - cli_auth_file_arg, - client_username, - client_password, - case("tests/data/auth1.txt", "joe", "wrongpassword"), - case("tests/data/auth1.txt", "bob", ""), - case("tests/data/auth1.txt", "nonexistentuser", "wrongpassword") -)] +#[rstest] +#[case("joe", "wrongpassword")] +#[case("bob", "")] +#[case("nonexistentuser", "wrongpassword")] fn auth_file_rejects( - cli_auth_file_arg: &str, - client_username: &str, - client_password: &str, + #[with(&["--auth-file", "tests/data/auth1.txt"])] server: TestServer, + #[case] client_username: &str, + #[case] client_password: &str, ) -> Result<(), Error> { - let server = server(&["--auth-file", cli_auth_file_arg]); let client = Client::new(); let status = client .get(server.url()) diff --git a/tests/header.rs b/tests/header.rs index ea4c462..443f2ba 100644 --- a/tests/header.rs +++ b/tests/header.rs @@ -4,11 +4,10 @@ mod fixtures; use crate::fixtures::{server, Error}; -#[rstest(headers, - case(vec!["x-info: 123".to_string()]), - case(vec!["x-info1: 123".to_string(), "x-info2: 345".to_string()]) -)] -fn custom_header_set(headers: Vec<String>) -> Result<(), Error> { +#[rstest] +#[case(vec!["x-info: 123".to_string()])] +#[case(vec!["x-info1: 123".to_string(), "x-info2: 345".to_string()])] +fn custom_header_set(#[case] headers: Vec<String>) -> Result<(), Error> { let server = server(headers.iter().flat_map(|h| vec!["--header", h])); let resp = reqwest::blocking::get(server.url())?; diff --git a/tests/navigation.rs b/tests/navigation.rs index f061d30..1bd8e81 100644 --- a/tests/navigation.rs +++ b/tests/navigation.rs @@ -10,16 +10,17 @@ mod utils; use crate::fixtures::{server, Error, TestServer, DEEPLY_NESTED_FILE, DIRECTORIES}; use crate::utils::{get_link_from_text, get_link_hrefs_with_prefix}; -#[rstest( - input, - expected, - case("", "/"), - case("/dira", "/dira/"), - case("/dirb/", "/dirb/"), - case("/very/deeply/nested", "/very/deeply/nested/") -)] +#[rstest] +#[case("", "/")] +#[case("/dira", "/dira/")] +#[case("/dirb/", "/dirb/")] +#[case("/very/deeply/nested", "/very/deeply/nested/")] /// Directories get a trailing slash. -fn index_gets_trailing_slash(server: TestServer, input: &str, expected: &str) -> Result<(), Error> { +fn index_gets_trailing_slash( + server: TestServer, + #[case] input: &str, + #[case] expected: &str, +) -> Result<(), Error> { let resp = reqwest::blocking::get(server.url().join(input)?)?; assert!(resp.url().as_str().ends_with(expected)); diff --git a/tests/raw.rs b/tests/raw.rs index 0017bae..051c3e3 100644 --- a/tests/raw.rs +++ b/tests/raw.rs @@ -13,18 +13,15 @@ use crate::fixtures::{server, Error, TestServer}; /// The footer displays the correct wget command to download the folder recursively // This test can't test all aspects of the wget footer, // a more detailed unit test is available -#[rstest( - depth, - dir, - case(0, ""), - case(1, "dira/"), - case(2, "very/deeply/"), - case(3, "very/deeply/nested/") -)] +#[rstest] +#[case(0, "")] +#[case(1, "dira/")] +#[case(2, "very/deeply/")] +#[case(3, "very/deeply/nested/")] fn ui_displays_wget_element( - depth: u8, - dir: &str, - #[with(&["-W"])] server: TestServer, + #[case] depth: u8, + #[case] dir: &str, + #[with(&["--show-wget-footer"])] server: TestServer, ) -> Result<(), Error> { let client = Client::new(); @@ -62,16 +59,14 @@ fn ui_displays_wget_element( } /// All hrefs in raw mode are links to directories or files & directories end with ?raw=true -#[rstest( - dir, - case(""), - case("very/"), - case("very/deeply/"), - case("very/deeply/nested/") -)] +#[rstest] +#[case("")] +#[case("very/")] +#[case("very/deeply/")] +#[case("very/deeply/nested/")] fn raw_mode_links_to_directories_end_with_raw_true( - dir: &str, - #[with(&["-W"])] server: TestServer, + #[case] dir: &str, + #[with(&["--show-wget-footer"])] server: TestServer, ) -> Result<(), Error> { fn verify_a_tags(parsed: Document) { // Ensure all links end with ?raw=true or are files diff --git a/tests/readme.rs b/tests/readme.rs index 122f6ec..cafff3d 100644 --- a/tests/readme.rs +++ b/tests/readme.rs @@ -69,17 +69,15 @@ fn no_readme_contents(server: TestServer) -> Result<(), Error> { } /// Show readme contents when told to if there is a readme file in the root -#[rstest( - readme_name, - case("Readme.md"), - case("readme.md"), - case("README.md"), - case("README.MD"), - case("ReAdMe.Md") -)] +#[rstest] +#[case("Readme.md")] +#[case("readme.md")] +#[case("README.md")] +#[case("README.MD")] +#[case("ReAdMe.Md")] fn show_root_readme_contents( #[with(&["--readme"])] server: TestServer, - readme_name: &str, + #[case] readme_name: &str, ) -> Result<(), Error> { let readme_path = write_readme_contents(server.path().to_path_buf(), readme_name); let body = reqwest::blocking::get(server.url())?.error_for_status()?; @@ -96,21 +94,19 @@ fn show_root_readme_contents( } /// Show readme contents when told to if there is a readme file in any of the directories -#[rstest( - readme_name, - case("Readme.md"), - case("readme.md"), - case("README.md"), - case("README.MD"), - case("ReAdMe.Md"), - case("Readme.txt"), - case("README.txt"), - case("README"), - case("ReAdMe") -)] +#[rstest] +#[case("Readme.md")] +#[case("readme.md")] +#[case("README.md")] +#[case("README.MD")] +#[case("ReAdMe.Md")] +#[case("Readme.txt")] +#[case("README.txt")] +#[case("README")] +#[case("ReAdMe")] fn show_nested_readme_contents( #[with(&["--readme"])] server: TestServer, - readme_name: &str, + #[case] readme_name: &str, ) -> Result<(), Error> { for dir in DIRECTORIES { let readme_path = write_readme_contents(server.path().join(dir), readme_name); |