Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use call
  • Loading branch information
harupy committed Nov 21, 2024
commit 3f385b684ec3439d2034974be7c1d09e7b35eba4
Original file line number Diff line number Diff line change
Expand Up @@ -800,21 +800,20 @@ pub(crate) fn parametrize(checker: &mut Checker, call: &ExprCall) {
return;
}

let ExprCall { arguments, .. } = call;
if checker.enabled(Rule::PytestParametrizeNamesWrongType) {
if let Some(names) = arguments.find_argument("argnames", 0) {
if let Some(names) = call.arguments.find_argument("argnames", 0) {
check_names(checker, call, names);
}
}
if checker.enabled(Rule::PytestParametrizeValuesWrongType) {
if let Some(names) = arguments.find_argument("argnames", 0) {
if let Some(values) = arguments.find_argument("argvalues", 1) {
if let Some(names) = call.arguments.find_argument("argnames", 0) {
if let Some(values) = call.arguments.find_argument("argvalues", 1) {
check_values(checker, names, values);
}
}
}
if checker.enabled(Rule::PytestDuplicateParametrizeTestCases) {
if let Some(values) = arguments.find_argument("argvalues", 1) {
if let Some(values) = call.arguments.find_argument("argvalues", 1) {
check_duplicates(checker, values);
Comment on lines +803 to +833
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This aligns with the upstream implementation:

https://github.com/m-burst/flake8-pytest-style/blob/2addab8b533ea101e25d022a37dc32d89db6c688/flake8_pytest_style/utils.py#L96

def extract_parametrize_call_args(node: ast.Call) -> Optional[ParametrizeArgs]:
    """Extracts argnames, argvalues and ids from a parametrize call."""
    args = get_simple_call_args(node)

    names_arg = args.get_argument('argnames', 0)
    if names_arg is None:
        return None

    values_arg = args.get_argument('argvalues', 1)
    ids_arg = args.get_argument('ids')
    return ParametrizeArgs(names_arg, values_arg, ids_arg)

}
}
Expand Down