diff --git a/Cargo.toml b/Cargo.toml index 247cd66..80c7b8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "datatest" -version = "0.3.0" +version = "0.3.1" authors = ["Ivan Dubrov "] edition = "2018" repository = "https://github.com/commure/datatest" @@ -11,7 +11,7 @@ Data-driven tests in Rust """ [dependencies] -datatest-derive = { path = "datatest-derive", version = "0.3.0" } +datatest-derive = { path = "datatest-derive", version = "0.3.1" } regex = "1.0.0" walkdir = "2.1.4" serde = "1.0.84" diff --git a/datatest-derive/Cargo.toml b/datatest-derive/Cargo.toml index 1401b34..16dcea3 100644 --- a/datatest-derive/Cargo.toml +++ b/datatest-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "datatest-derive" -version = "0.3.0" +version = "0.3.1" authors = ["Ivan Dubrov "] edition = "2018" repository = "https://github.com/commure/datatest" diff --git a/src/data.rs b/src/data.rs index 6b56e9e..eb353a8 100644 --- a/src/data.rs +++ b/src/data.rs @@ -115,6 +115,9 @@ fn index_cases(source: &str) -> Vec { Event::StreamEnd => { break; } + Event::Scalar(_, _, _, _) if depth == 1 => { + index.push(marker); + } Event::MappingStart(_idx) if depth == 1 => { index.push(marker); depth += 1; diff --git a/tests/datatest.rs b/tests/datatest.rs index 266c6f7..d9b0909 100644 --- a/tests/datatest.rs +++ b/tests/datatest.rs @@ -159,3 +159,12 @@ impl fmt::Display for GreeterTestCaseNamed { fn data_test_name_and_line(data: &GreeterTestCaseNamed) { assert_eq!(data.expected, format!("Hi, {}!", data.name)); } + + +/// Can also take string inputs +#[datatest::data("tests/strings.yaml")] +#[test] +fn data_test_string(data: String) { + let half = data.len() / 2; + assert_eq!(data[0..half], data[half..]); +} diff --git a/tests/strings.yaml b/tests/strings.yaml new file mode 100644 index 0000000..73cd2bb --- /dev/null +++ b/tests/strings.yaml @@ -0,0 +1,3 @@ +- "firstfirst" +- "secondsecond" +- "thirdthird" \ No newline at end of file