diff --git a/src/test_utilities/test_file.rs b/src/test_utilities/test_file.rs index 51a33185f..0742fa3e6 100644 --- a/src/test_utilities/test_file.rs +++ b/src/test_utilities/test_file.rs @@ -10,6 +10,18 @@ fn remove_file_if_exists(filename: &String) { } } +fn hidden_filename(filename: &String) -> String { + let path = Path::new(filename); + let name: String = path.file_name().unwrap().to_str().unwrap().to_string(); + let parent = path.parent().unwrap(); + + parent + .join(&Path::new(&(".".to_string() + &name))) + .to_str() + .unwrap() + .to_string() +} + impl TestFile { #[allow(dead_code)] pub(crate) fn file_name(&self) -> &String { @@ -26,6 +38,7 @@ impl From<&str> for TestFile { impl From for TestFile { fn from(filename: String) -> Self { remove_file_if_exists(&filename); + remove_file_if_exists(&hidden_filename(&filename)); TestFile { filename } } @@ -34,6 +47,7 @@ impl From for TestFile { impl Drop for TestFile { fn drop(&mut self) { remove_file_if_exists(&self.filename); + remove_file_if_exists(&hidden_filename(&self.filename)); } } @@ -52,19 +66,19 @@ mod tests { #[test] fn created_from_str_ref() { - let filename = "./test_file_test_file01"; + let filename = "./test_file-created_from_str_ref"; let _test_file = TestFile::from(filename); } #[test] fn created_from_string() { - let filename = "./test_file_test_file02".to_string(); + let filename = "./test_file-created_from_string".to_string(); let _test_file = TestFile::from(filename); } #[test] fn get_file_name() { - let filename = "./test_file_test_file03"; + let filename = "./test_file-get_file_name"; let test_file = TestFile::from(filename); assert_eq!(test_file.file_name(), filename); @@ -72,7 +86,7 @@ mod tests { #[test] fn existing_file_is_deleted_on_construction() { - let filename = "./test_file_test_file04"; + let filename = "./test_file-existing_file_is_deleted_on_construction"; ensure_file(filename); let _test_file = TestFile::from(filename); assert!(!Path::new(filename).exists()); @@ -80,13 +94,39 @@ mod tests { #[test] fn file_is_deleted_on_destruction() { - let filename = "./test_file_test_file05"; + let filename = "./test_file-file_is_deleted_on_destruction"; + + { + let _test_file = TestFile::from(filename); + ensure_file(filename); + } + + assert!(!Path::new(filename).exists()); + } + + #[test] + fn hidden_file_is_deleted_on_construction() { + let filename = "./test_file-hidden_file_is_deleted_on_construction"; + let hidden_filename = "./.test_file-hidden_file_is_deleted_on_construction"; + ensure_file(filename); + ensure_file(hidden_filename); + let _test_file = TestFile::from(filename); + assert!(!Path::new(filename).exists()); + assert!(!Path::new(hidden_filename).exists()); + } + + #[test] + fn hidden_file_is_deleted_on_destruction() { + let filename = "test_file-hidden_file_is_deleted_on_destruction"; + let hidden_filename = ".test_file-hidden_file_is_deleted_on_destruction"; { let _test_file = TestFile::from(filename); ensure_file(filename); + ensure_file(hidden_filename); } assert!(!Path::new(filename).exists()); + assert!(!Path::new(hidden_filename).exists()); } }