Re: [PATCH v2 1/2] kunit: tool: use dataclass instead of collections.namedtuple

From: Brendan Higgins
Date: Tue Dec 14 2021 - 16:44:07 EST


On Tue, Dec 14, 2021 at 2:26 PM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote:
>
> namedtuple is a terse way of defining a collection of fields.
> However, it does not allow us to annotate the type of these fields.
> It also doesn't let us have any sort of inheritance between types.
>
> Since commit df4b0807ca1a ("kunit: tool: Assert the version
> requirement"), kunit.py has asserted that it's running on python >=3.7.
>
> So in that case use a 3.7 feature, dataclasses, to replace these.
>
> Changes in detail:
> * Make KunitExecRequest contain all the fields needed for exec_tests
> * Use inheritance to dedupe fields
> * also allows us to e.g. pass a KUnitRequest in as a KUnitParseRequest
> * this has changed around the order of some fields
> * Use named arguments when constructing all request objects in kunit.py
> * This is to prevent accidentally mixing up fields, etc.
>
> Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx>
> Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>

Looks good. Thanks for the rebase!