(cls, argname, cases)
| 214 | |
| 215 | @classmethod |
| 216 | def generate_cases(cls, argname, cases): |
| 217 | case_names = [ |
| 218 | argname if c is True else "not_" + argname if c is False else c |
| 219 | for c in cases |
| 220 | ] |
| 221 | |
| 222 | typ = type( |
| 223 | argname, |
| 224 | (Variation,), |
| 225 | { |
| 226 | "__slots__": tuple(case_names), |
| 227 | }, |
| 228 | ) |
| 229 | |
| 230 | return [typ(casename, argname, case_names) for casename in case_names] |
| 231 | |
| 232 | |
| 233 | def variation(argname_or_fn, cases=None): |
no outgoing calls
no test coverage detected