naming.py 725 Bytes
Newer Older
Adam Blank's avatar
gogo    
Adam Blank committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pytest
from collections.abc import Iterable

def trans(x):
    return str(x)

def apply_names(func, args, tests, noparens=False):
    cases = []
    for case in tests:
        if not isinstance(case, Iterable):
            case = [case]
        extra = ", ".join(args[i] + trans(x) for i, x in enumerate(case) if (args[i] is not True and args[i] is not False))
        cases.append(
            pytest.param(
                *case, id=func + ("(" if not noparens else "") + ", ".join(trans(x) for i, x in enumerate(case) if args[i] is True) + (")" if not noparens else "" if noparens is True else noparens) + (((", " if noparens is not True else "") + extra) if extra else "")
            )
        )
    return cases