[PATCH v4 02/11] dts: add test case decorators

Juraj Linkeš juraj.linkes at pantheon.tech
Tue Sep 24 10:00:32 CEST 2024



On 23. 9. 2024 21:26, Jeremy Spewock wrote:
> One super nit-pick comment below,  even without that though I still
> think this looks good.
> 
> Reviewed-by: Jeremy Spewock <jspewock at iol.unh.edu>
> 
> On Mon, Sep 23, 2024 at 11:02 AM Juraj Linkeš
> <juraj.linkes at pantheon.tech> wrote:
> <snip>
>> +        def is_test_case(function: Callable) -> bool:
>> +            if inspect.isfunction(function):
>> +                # TestCase is not used at runtime, so we can't use isinstance() with `function`.
>> +                # But function.test_type exists.
>> +                if hasattr(function, "test_type"):
>> +                    return isinstance(function.test_type, TestCaseType)
>> +            return False
>> +
>> +        if test_case_sublist is None:
>> +            test_case_sublist = []
>> +
>> +        # the copy is needed so that the condition "elif test_case_sublist" doesn't
>> +        # change mid-cycle
>> +        test_case_sublist_copy = list(test_case_sublist)
>> +        func_test_cases = set()
>> +        perf_test_cases = set()
>> +
>> +        for test_case_name, test_case_function in inspect.getmembers(cls, is_test_case):
>> +            if test_case_name in test_case_sublist_copy:
>> +                # if test_case_sublist_copy is non-empty, remove the found test case
>> +                # so that we can look at the remainder at the end
>> +                test_case_sublist_copy.remove(test_case_name)
>> +            elif test_case_sublist:
>> +                # the original list not being empty means we're filtering test cases
> 
> This might read a little better if there was a period at the end, but
> I still think this gets the point across as is.
> 

Ack, I'll capitalize and add periods to all comments in this method.

>> +                # since we didn't remove test_case_name in the previous branch,
>> +                # it doesn't match the filter and we don't want to remove it
>> +                continue
>> +
>> +            match test_case_function.test_type:
>> +                case TestCaseType.PERFORMANCE:
>> +                    perf_test_cases.add(test_case_function)
>> +                case TestCaseType.FUNCTIONAL:
>> +                    func_test_cases.add(test_case_function)
>> +
> <snip>
>> 2.43.0
>>



More information about the dev mailing list