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 <jspew...@iol.unh.edu>
On Mon, Sep 23, 2024 at 11:02 AM Juraj Linkeš
<juraj.lin...@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