diff --git a/CHANGELOG.md b/CHANGELOG.md index baa86df..ed76fe7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,8 @@ ### Changed -- Now we show `TEST START` banner only when trace some argument: See #158 for details. -- Now we try to add the values to test name: See #160 for details. +- Show `TEST START` banner only when trace some argument: See #158 for details. +- Add values to test name: See #160 for details. ### Fixed diff --git a/rstest/tests/resources/rstest/values_tests_name.rs b/rstest/tests/resources/rstest/values_tests_name.rs new file mode 100644 index 0000000..eec208d --- /dev/null +++ b/rstest/tests/resources/rstest/values_tests_name.rs @@ -0,0 +1,21 @@ +use rstest::*; + +enum Application { + Python, + Node, + Go, +} + +enum Method { + GET, + POST, + PUT, + HEAD, +} + +#[rstest] +fn name_values( + #[values(Application::Python, Application::Node, Application::Go)] _val: Application, + #[values(Method::GET, Method::POST, Method::PUT, Method::HEAD)] _method: Method, +) { +} diff --git a/rstest/tests/rstest/mod.rs b/rstest/tests/rstest/mod.rs index da17ab7..6f4bb3a 100644 --- a/rstest/tests/rstest/mod.rs +++ b/rstest/tests/rstest/mod.rs @@ -66,6 +66,13 @@ fn should_not_show_a_warning_for_should_panic_attribute() { assert!(!output.stderr.str().contains("unused attribute")); } +#[test] +fn should_not_show_a_warning_for_values_test_names() { + let (output, _) = run_test("values_tests_name.rs"); + + assert_not_in!(output.stderr.str(), "warning:"); +} + #[test] fn should_map_fixture_by_remove_first_underscore_if_any() { let (output, _) = run_test("remove_underscore.rs"); diff --git a/rstest_macros/src/render/mod.rs b/rstest_macros/src/render/mod.rs index 7e5936a..c64cb62 100644 --- a/rstest_macros/src/render/mod.rs +++ b/rstest_macros/src/render/mod.rs @@ -120,7 +120,11 @@ fn _matrix_recursive<'a>( let list_values = &list_values[1..]; if list_values.is_empty() { - vlist.render(test, resolver, attrs, attributes) + let mut attrs = attrs.to_vec(); + attrs.push(parse_quote!( + #[allow(non_snake_case)] + )); + vlist.render(test, resolver, &attrs, attributes) } else { let span = test.sig.ident.span(); let modules = vlist.argument_data(resolver).map(move |(name, resolver)| { @@ -128,7 +132,10 @@ fn _matrix_recursive<'a>( .wrap_by_mod(&Ident::new(&name, span)) }); - quote! { #(#modules)* } + quote! { #( + #[allow(non_snake_case)] + #modules + )* } } }