From f5006a93b09713daac5eeaa88ac728733d2e132a Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sat, 27 Apr 2019 13:27:39 +0700 Subject: Add hashed password to integration test --- tests/cli.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/cli.rs b/tests/cli.rs index 2390c3b..49a1309 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -11,6 +11,7 @@ use select::predicate::{Attr, Text}; use std::process::{Command, Stdio}; use std::thread::sleep; use std::time::Duration; +use rstest::rstest_parametrize; type Error = Box; @@ -75,14 +76,30 @@ fn serves_requests_with_non_default_port(tmpdir: TempDir, port: u16) -> Result<( Ok(()) } -#[rstest] -fn auth_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { +#[rstest_parametrize( + cli_auth_arg, client_username, client_password, + case("testuser:testpassword", "testuser", "testpassword"), + case( + "testuser:sha256:9f735e0df9a1ddc702bf0a1a7b83033f9f7153a00c29de82cedadc9957289b05", + "testuser", + "testpassword" + ), + case( + "testuser:sha512:e9e633097ab9ceb3e48ec3f70ee2beba41d05d5420efee5da85f97d97005727587fda33ef4ff2322088f4c79e8133cc9cd9f3512f4d3a303cbdb5bc585415a00", + "testuser", + "testpassword" + ), +)] +fn auth_works(cli_auth_arg: &str, client_username: &str, client_password: &str) -> Result<(), Error> { + let tmpdir = self::tmpdir(); + let port = self::port(); + let mut child = Command::cargo_bin("miniserve")? .arg(tmpdir.path()) .arg("-p") .arg(port.to_string()) .arg("-a") - .arg("testuser:testpassword") + .arg(cli_auth_arg) .stdout(Stdio::null()) .spawn()?; @@ -91,7 +108,7 @@ fn auth_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { let client = reqwest::Client::new(); let body = client .get(format!("http://localhost:{}", port).as_str()) - .basic_auth("testuser", Some("testpassword")) + .basic_auth(client_username, Some(client_password)) .send()? .error_for_status()?; let parsed = Document::from_read(body)?; -- cgit v1.2.3 From 568e973fa937146b17278cc651b9da394feb89bf Mon Sep 17 00:00:00 2001 From: khai96_ Date: Sun, 28 Apr 2019 14:02:22 +0700 Subject: Use fixtures --- tests/cli.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/cli.rs b/tests/cli.rs index 49a1309..a67f5de 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -90,10 +90,13 @@ fn serves_requests_with_non_default_port(tmpdir: TempDir, port: u16) -> Result<( "testpassword" ), )] -fn auth_works(cli_auth_arg: &str, client_username: &str, client_password: &str) -> Result<(), Error> { - let tmpdir = self::tmpdir(); - let port = self::port(); - +fn auth_works( + tmpdir: TempDir, + port: u16, + cli_auth_arg: &str, + client_username: &str, + client_password: &str +) -> Result<(), Error> { let mut child = Command::cargo_bin("miniserve")? .arg(tmpdir.path()) .arg("-p") -- cgit v1.2.3 From a07c1bdf4da77c8227c110e750fce7169618d75e Mon Sep 17 00:00:00 2001 From: khai96_ Date: Mon, 29 Apr 2019 01:07:02 +0700 Subject: Split integration test into multiple files --- tests/auth.rs | 50 ++++++++++++++ tests/cli.rs | 176 +------------------------------------------------ tests/helpers.rs | 37 +++++++++++ tests/serve_request.rs | 44 +++++++++++++ tests/upload_files.rs | 51 ++++++++++++++ 5 files changed, 184 insertions(+), 174 deletions(-) create mode 100644 tests/auth.rs create mode 100644 tests/helpers.rs create mode 100644 tests/serve_request.rs create mode 100644 tests/upload_files.rs (limited to 'tests') diff --git a/tests/auth.rs b/tests/auth.rs new file mode 100644 index 0000000..cefc7ec --- /dev/null +++ b/tests/auth.rs @@ -0,0 +1,50 @@ +mod helpers; +use helpers::*; + +#[rstest_parametrize( + cli_auth_arg, client_username, client_password, + case("testuser:testpassword", "testuser", "testpassword"), + case( + "testuser:sha256:9f735e0df9a1ddc702bf0a1a7b83033f9f7153a00c29de82cedadc9957289b05", + "testuser", + "testpassword" + ), + case( + "testuser:sha512:e9e633097ab9ceb3e48ec3f70ee2beba41d05d5420efee5da85f97d97005727587fda33ef4ff2322088f4c79e8133cc9cd9f3512f4d3a303cbdb5bc585415a00", + "testuser", + "testpassword" + ), +)] +fn auth_works( + tmpdir: TempDir, + port: u16, + cli_auth_arg: &str, + client_username: &str, + client_password: &str +) -> Result<(), Error> { + let mut child = Command::cargo_bin("miniserve")? + .arg(tmpdir.path()) + .arg("-p") + .arg(port.to_string()) + .arg("-a") + .arg(cli_auth_arg) + .stdout(Stdio::null()) + .spawn()?; + + sleep(Duration::from_secs(1)); + + let client = reqwest::Client::new(); + let body = client + .get(format!("http://localhost:{}", port).as_str()) + .basic_auth(client_username, Some(client_password)) + .send()? + .error_for_status()?; + let parsed = Document::from_read(body)?; + for &file in FILES { + assert!(parsed.find(Text).any(|x| x.text() == file)); + } + + child.kill()?; + + Ok(()) +} diff --git a/tests/cli.rs b/tests/cli.rs index a67f5de..c021eb7 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -1,177 +1,5 @@ -use assert_cmd::prelude::*; -use assert_fs::fixture::TempDir; -use assert_fs::prelude::*; -use clap::{crate_name, crate_version}; -use port_check::free_local_port; -use reqwest; -use reqwest::multipart; -use rstest::rstest; -use select::document::Document; -use select::predicate::{Attr, Text}; -use std::process::{Command, Stdio}; -use std::thread::sleep; -use std::time::Duration; -use rstest::rstest_parametrize; - -type Error = Box; - -static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"]; - -/// Test fixture which creates a temporary directory with a few files inside. -pub fn tmpdir() -> TempDir { - let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests"); - for &file in FILES { - tmpdir - .child(file) - .write_str("Test Hello Yes") - .expect("Couldn't write to file"); - } - tmpdir -} - -/// Get a free port. -pub fn port() -> u16 { - free_local_port().expect("Couldn't find a free local port") -} - -#[rstest] -fn serves_requests_with_no_options(tmpdir: TempDir) -> Result<(), Error> { - let mut child = Command::cargo_bin("miniserve")? - .arg(tmpdir.path()) - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); - - let body = reqwest::get("http://localhost:8080")?.error_for_status()?; - let parsed = Document::from_read(body)?; - for &file in FILES { - assert!(parsed.find(Text).any(|x| x.text() == file)); - } - - child.kill()?; - - Ok(()) -} - -#[rstest] -fn serves_requests_with_non_default_port(tmpdir: TempDir, port: u16) -> Result<(), Error> { - let mut child = Command::cargo_bin("miniserve")? - .arg(tmpdir.path()) - .arg("-p") - .arg(port.to_string()) - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); - - let body = reqwest::get(format!("http://localhost:{}", port).as_str())?.error_for_status()?; - let parsed = Document::from_read(body)?; - for &file in FILES { - assert!(parsed.find(Text).any(|x| x.text() == file)); - } - - child.kill()?; - - Ok(()) -} - -#[rstest_parametrize( - cli_auth_arg, client_username, client_password, - case("testuser:testpassword", "testuser", "testpassword"), - case( - "testuser:sha256:9f735e0df9a1ddc702bf0a1a7b83033f9f7153a00c29de82cedadc9957289b05", - "testuser", - "testpassword" - ), - case( - "testuser:sha512:e9e633097ab9ceb3e48ec3f70ee2beba41d05d5420efee5da85f97d97005727587fda33ef4ff2322088f4c79e8133cc9cd9f3512f4d3a303cbdb5bc585415a00", - "testuser", - "testpassword" - ), -)] -fn auth_works( - tmpdir: TempDir, - port: u16, - cli_auth_arg: &str, - client_username: &str, - client_password: &str -) -> Result<(), Error> { - let mut child = Command::cargo_bin("miniserve")? - .arg(tmpdir.path()) - .arg("-p") - .arg(port.to_string()) - .arg("-a") - .arg(cli_auth_arg) - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); - - let client = reqwest::Client::new(); - let body = client - .get(format!("http://localhost:{}", port).as_str()) - .basic_auth(client_username, Some(client_password)) - .send()? - .error_for_status()?; - let parsed = Document::from_read(body)?; - for &file in FILES { - assert!(parsed.find(Text).any(|x| x.text() == file)); - } - - child.kill()?; - - Ok(()) -} - -#[rstest] -fn uploading_files_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { - let test_file_name = "uploaded test file.txt"; - - let mut child = Command::cargo_bin("miniserve")? - .arg(tmpdir.path()) - .arg("-p") - .arg(port.to_string()) - .arg("-u") - .stdout(Stdio::null()) - .spawn()?; - - sleep(Duration::from_secs(1)); - - // Before uploading, check whether the uploaded file does not yet exist. - let body = reqwest::get(format!("http://localhost:{}", port).as_str())?.error_for_status()?; - let parsed = Document::from_read(body)?; - assert!(parsed.find(Text).all(|x| x.text() != test_file_name)); - - // Perform the actual upload. - let upload_action = parsed - .find(Attr("id", "file_submit")) - .next() - .expect("Couldn't find element with id=file_submit") - .attr("action") - .expect("Upload form doesn't have action attribute"); - let form = multipart::Form::new(); - let part = multipart::Part::text("this should be uploaded") - .file_name(test_file_name) - .mime_str("text/plain")?; - let form = form.part("file_to_upload", part); - - let client = reqwest::Client::new(); - client - .post(format!("http://localhost:{}{}", port, upload_action).as_str()) - .multipart(form) - .send()? - .error_for_status()?; - - // After uploading, check whether the uploaded file is now getting listed. - let body = reqwest::get(format!("http://localhost:{}", port).as_str())?; - let parsed = Document::from_read(body)?; - assert!(parsed.find(Text).any(|x| x.text() == test_file_name)); - - child.kill()?; - - Ok(()) -} +mod helpers; +use helpers::*; #[test] /// Show help and exit. diff --git a/tests/helpers.rs b/tests/helpers.rs new file mode 100644 index 0000000..3c5ad72 --- /dev/null +++ b/tests/helpers.rs @@ -0,0 +1,37 @@ +pub use assert_cmd::prelude::*; +pub use assert_fs::fixture::TempDir; +pub use assert_fs::prelude::*; +pub use clap::{crate_name, crate_version}; +pub use port_check::free_local_port; +pub use reqwest; +pub use reqwest::multipart; +pub use rstest::rstest; +pub use select::document::Document; +pub use select::predicate::{Attr, Text}; +pub use std::process::{Command, Stdio}; +pub use std::thread::sleep; +pub use std::time::Duration; +pub use rstest::rstest_parametrize; + +/// Error type used by tests +pub type Error = Box; + +/// File names for testing purpose +pub static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"]; + +/// Test fixture which creates a temporary directory with a few files inside. +pub fn tmpdir() -> TempDir { + let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests"); + for &file in FILES { + tmpdir + .child(file) + .write_str("Test Hello Yes") + .expect("Couldn't write to file"); + } + tmpdir +} + +/// Get a free port. +pub fn port() -> u16 { + free_local_port().expect("Couldn't find a free local port") +} diff --git a/tests/serve_request.rs b/tests/serve_request.rs new file mode 100644 index 0000000..10b2bfc --- /dev/null +++ b/tests/serve_request.rs @@ -0,0 +1,44 @@ +mod helpers; +use helpers::*; + +#[rstest] +fn serves_requests_with_no_options(tmpdir: TempDir) -> Result<(), Error> { + let mut child = Command::cargo_bin("miniserve")? + .arg(tmpdir.path()) + .stdout(Stdio::null()) + .spawn()?; + + sleep(Duration::from_secs(1)); + + let body = reqwest::get("http://localhost:8080")?.error_for_status()?; + let parsed = Document::from_read(body)?; + for &file in FILES { + assert!(parsed.find(Text).any(|x| x.text() == file)); + } + + child.kill()?; + + Ok(()) +} + +#[rstest] +fn serves_requests_with_non_default_port(tmpdir: TempDir, port: u16) -> Result<(), Error> { + let mut child = Command::cargo_bin("miniserve")? + .arg(tmpdir.path()) + .arg("-p") + .arg(port.to_string()) + .stdout(Stdio::null()) + .spawn()?; + + sleep(Duration::from_secs(1)); + + let body = reqwest::get(format!("http://localhost:{}", port).as_str())?.error_for_status()?; + let parsed = Document::from_read(body)?; + for &file in FILES { + assert!(parsed.find(Text).any(|x| x.text() == file)); + } + + child.kill()?; + + Ok(()) +} diff --git a/tests/upload_files.rs b/tests/upload_files.rs new file mode 100644 index 0000000..4ebdb69 --- /dev/null +++ b/tests/upload_files.rs @@ -0,0 +1,51 @@ +mod helpers; +use helpers::*; + +#[rstest] +fn uploading_files_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { + let test_file_name = "uploaded test file.txt"; + + let mut child = Command::cargo_bin("miniserve")? + .arg(tmpdir.path()) + .arg("-p") + .arg(port.to_string()) + .arg("-u") + .stdout(Stdio::null()) + .spawn()?; + + sleep(Duration::from_secs(1)); + + // Before uploading, check whether the uploaded file does not yet exist. + let body = reqwest::get(format!("http://localhost:{}", port).as_str())?.error_for_status()?; + let parsed = Document::from_read(body)?; + assert!(parsed.find(Text).all(|x| x.text() != test_file_name)); + + // Perform the actual upload. + let upload_action = parsed + .find(Attr("id", "file_submit")) + .next() + .expect("Couldn't find element with id=file_submit") + .attr("action") + .expect("Upload form doesn't have action attribute"); + let form = multipart::Form::new(); + let part = multipart::Part::text("this should be uploaded") + .file_name(test_file_name) + .mime_str("text/plain")?; + let form = form.part("file_to_upload", part); + + let client = reqwest::Client::new(); + client + .post(format!("http://localhost:{}{}", port, upload_action).as_str()) + .multipart(form) + .send()? + .error_for_status()?; + + // After uploading, check whether the uploaded file is now getting listed. + let body = reqwest::get(format!("http://localhost:{}", port).as_str())?; + let parsed = Document::from_read(body)?; + assert!(parsed.find(Text).any(|x| x.text() == test_file_name)); + + child.kill()?; + + Ok(()) +} -- cgit v1.2.3 From 014bc52dc0e693bca8183bcf19c813452a34cc1c Mon Sep 17 00:00:00 2001 From: khai96_ Date: Mon, 29 Apr 2019 18:37:04 +0700 Subject: Move helpers.rs to fixtures/mod.rs --- tests/auth.rs | 4 ++-- tests/cli.rs | 4 ++-- tests/fixtures/mod.rs | 37 +++++++++++++++++++++++++++++++++++++ tests/helpers.rs | 37 ------------------------------------- tests/serve_request.rs | 4 ++-- tests/upload_files.rs | 4 ++-- 6 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 tests/fixtures/mod.rs delete mode 100644 tests/helpers.rs (limited to 'tests') diff --git a/tests/auth.rs b/tests/auth.rs index cefc7ec..48f070e 100644 --- a/tests/auth.rs +++ b/tests/auth.rs @@ -1,5 +1,5 @@ -mod helpers; -use helpers::*; +mod fixtures; +use fixtures::*; #[rstest_parametrize( cli_auth_arg, client_username, client_password, diff --git a/tests/cli.rs b/tests/cli.rs index c021eb7..fe0f141 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -1,5 +1,5 @@ -mod helpers; -use helpers::*; +mod fixtures; +use fixtures::*; #[test] /// Show help and exit. diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs new file mode 100644 index 0000000..3c5ad72 --- /dev/null +++ b/tests/fixtures/mod.rs @@ -0,0 +1,37 @@ +pub use assert_cmd::prelude::*; +pub use assert_fs::fixture::TempDir; +pub use assert_fs::prelude::*; +pub use clap::{crate_name, crate_version}; +pub use port_check::free_local_port; +pub use reqwest; +pub use reqwest::multipart; +pub use rstest::rstest; +pub use select::document::Document; +pub use select::predicate::{Attr, Text}; +pub use std::process::{Command, Stdio}; +pub use std::thread::sleep; +pub use std::time::Duration; +pub use rstest::rstest_parametrize; + +/// Error type used by tests +pub type Error = Box; + +/// File names for testing purpose +pub static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"]; + +/// Test fixture which creates a temporary directory with a few files inside. +pub fn tmpdir() -> TempDir { + let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests"); + for &file in FILES { + tmpdir + .child(file) + .write_str("Test Hello Yes") + .expect("Couldn't write to file"); + } + tmpdir +} + +/// Get a free port. +pub fn port() -> u16 { + free_local_port().expect("Couldn't find a free local port") +} diff --git a/tests/helpers.rs b/tests/helpers.rs deleted file mode 100644 index 3c5ad72..0000000 --- a/tests/helpers.rs +++ /dev/null @@ -1,37 +0,0 @@ -pub use assert_cmd::prelude::*; -pub use assert_fs::fixture::TempDir; -pub use assert_fs::prelude::*; -pub use clap::{crate_name, crate_version}; -pub use port_check::free_local_port; -pub use reqwest; -pub use reqwest::multipart; -pub use rstest::rstest; -pub use select::document::Document; -pub use select::predicate::{Attr, Text}; -pub use std::process::{Command, Stdio}; -pub use std::thread::sleep; -pub use std::time::Duration; -pub use rstest::rstest_parametrize; - -/// Error type used by tests -pub type Error = Box; - -/// File names for testing purpose -pub static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"]; - -/// Test fixture which creates a temporary directory with a few files inside. -pub fn tmpdir() -> TempDir { - let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests"); - for &file in FILES { - tmpdir - .child(file) - .write_str("Test Hello Yes") - .expect("Couldn't write to file"); - } - tmpdir -} - -/// Get a free port. -pub fn port() -> u16 { - free_local_port().expect("Couldn't find a free local port") -} diff --git a/tests/serve_request.rs b/tests/serve_request.rs index 10b2bfc..31b9b75 100644 --- a/tests/serve_request.rs +++ b/tests/serve_request.rs @@ -1,5 +1,5 @@ -mod helpers; -use helpers::*; +mod fixtures; +use fixtures::*; #[rstest] fn serves_requests_with_no_options(tmpdir: TempDir) -> Result<(), Error> { diff --git a/tests/upload_files.rs b/tests/upload_files.rs index 4ebdb69..1bdecc3 100644 --- a/tests/upload_files.rs +++ b/tests/upload_files.rs @@ -1,5 +1,5 @@ -mod helpers; -use helpers::*; +mod fixtures; +use fixtures::*; #[rstest] fn uploading_files_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { -- cgit v1.2.3 From b7d35f5d48882c804e22de0019822c9406576033 Mon Sep 17 00:00:00 2001 From: khai96_ Date: Wed, 1 May 2019 11:04:21 +0700 Subject: Allow dead code to fix false negative warnings --- tests/fixtures/mod.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests') diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs index 3c5ad72..d074cb0 100644 --- a/tests/fixtures/mod.rs +++ b/tests/fixtures/mod.rs @@ -1,3 +1,5 @@ +#![allow(dead_code)] + pub use assert_cmd::prelude::*; pub use assert_fs::fixture::TempDir; pub use assert_fs::prelude::*; -- cgit v1.2.3 From 1adab9d2f5d7863b6df32992ecb21dcea5b51d21 Mon Sep 17 00:00:00 2001 From: Sven-Hendrik Haase Date: Wed, 1 May 2019 09:13:13 +0200 Subject: Make tests into their own proper modules without star imports Star imports make it hard to see which imports a module is actually using so I prefer to have this be a bit more explicit. --- tests/auth.rs | 13 +++++++++++-- tests/cli.rs | 6 +++++- tests/fixtures/mod.rs | 25 +++++++++---------------- tests/serve_request.rs | 11 ++++++++++- tests/upload_files.rs | 12 +++++++++++- 5 files changed, 46 insertions(+), 21 deletions(-) (limited to 'tests') diff --git a/tests/auth.rs b/tests/auth.rs index 48f070e..f43553b 100644 --- a/tests/auth.rs +++ b/tests/auth.rs @@ -1,5 +1,14 @@ mod fixtures; -use fixtures::*; + +use assert_cmd::prelude::*; +use assert_fs::fixture::TempDir; +use fixtures::{port, tmpdir, Error, FILES}; +use rstest::rstest_parametrize; +use select::document::Document; +use select::predicate::Text; +use std::process::{Command, Stdio}; +use std::thread::sleep; +use std::time::Duration; #[rstest_parametrize( cli_auth_arg, client_username, client_password, @@ -20,7 +29,7 @@ fn auth_works( port: u16, cli_auth_arg: &str, client_username: &str, - client_password: &str + client_password: &str, ) -> Result<(), Error> { let mut child = Command::cargo_bin("miniserve")? .arg(tmpdir.path()) diff --git a/tests/cli.rs b/tests/cli.rs index fe0f141..d5df06b 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -1,5 +1,9 @@ mod fixtures; -use fixtures::*; + +use assert_cmd::prelude::*; +use clap::{crate_name, crate_version}; +use fixtures::Error; +use std::process::Command; #[test] /// Show help and exit. diff --git a/tests/fixtures/mod.rs b/tests/fixtures/mod.rs index d074cb0..9cfd2cf 100644 --- a/tests/fixtures/mod.rs +++ b/tests/fixtures/mod.rs @@ -1,27 +1,18 @@ -#![allow(dead_code)] - -pub use assert_cmd::prelude::*; -pub use assert_fs::fixture::TempDir; -pub use assert_fs::prelude::*; -pub use clap::{crate_name, crate_version}; -pub use port_check::free_local_port; -pub use reqwest; -pub use reqwest::multipart; -pub use rstest::rstest; -pub use select::document::Document; -pub use select::predicate::{Attr, Text}; -pub use std::process::{Command, Stdio}; -pub use std::thread::sleep; -pub use std::time::Duration; -pub use rstest::rstest_parametrize; +use assert_fs::fixture::TempDir; +use assert_fs::prelude::*; +use port_check::free_local_port; +use rstest::fixture; /// Error type used by tests pub type Error = Box; /// File names for testing purpose +#[allow(dead_code)] pub static FILES: &[&str] = &["test.txt", "test.html", "test.mkv"]; /// Test fixture which creates a temporary directory with a few files inside. +#[fixture] +#[allow(dead_code)] pub fn tmpdir() -> TempDir { let tmpdir = assert_fs::TempDir::new().expect("Couldn't create a temp dir for tests"); for &file in FILES { @@ -34,6 +25,8 @@ pub fn tmpdir() -> TempDir { } /// Get a free port. +#[fixture] +#[allow(dead_code)] pub fn port() -> u16 { free_local_port().expect("Couldn't find a free local port") } diff --git a/tests/serve_request.rs b/tests/serve_request.rs index 31b9b75..ef346b2 100644 --- a/tests/serve_request.rs +++ b/tests/serve_request.rs @@ -1,5 +1,14 @@ mod fixtures; -use fixtures::*; + +use assert_cmd::prelude::*; +use assert_fs::fixture::TempDir; +use fixtures::{port, tmpdir, Error, FILES}; +use rstest::rstest; +use select::document::Document; +use select::predicate::Text; +use std::process::{Command, Stdio}; +use std::thread::sleep; +use std::time::Duration; #[rstest] fn serves_requests_with_no_options(tmpdir: TempDir) -> Result<(), Error> { diff --git a/tests/upload_files.rs b/tests/upload_files.rs index 1bdecc3..6a24aee 100644 --- a/tests/upload_files.rs +++ b/tests/upload_files.rs @@ -1,5 +1,15 @@ mod fixtures; -use fixtures::*; + +use assert_cmd::prelude::*; +use assert_fs::fixture::TempDir; +use fixtures::{port, tmpdir, Error}; +use reqwest::multipart; +use rstest::rstest; +use select::document::Document; +use select::predicate::{Attr, Text}; +use std::process::{Command, Stdio}; +use std::thread::sleep; +use std::time::Duration; #[rstest] fn uploading_files_works(tmpdir: TempDir, port: u16) -> Result<(), Error> { -- cgit v1.2.3