Add stub functionality for base resources and implement review request.

Review Request #14337 — Created Feb. 10, 2025 and submitted — Latest diff uploaded

Information

RBTools
master

Reviewers

This change adds support for @api_stub for the base resource class,
used for "special" links (create/update/delete/etc) as well as for any
resource-specific links.

This also adds a new decorator, @request_method_returns, which works
like @request_method, but can plumb through a specific return type.
This has been used to make ResourceLinkField generic, so that calls to
a ResourceLinkField.get() method can specify their return type as a
specific resource subclass.

Stubs for common special methods have been added to Resource,
ItemResource, and ListResource. This change also adds resource-specific
stubs to ReviewRequestItemResource, for those links where we have
existing resource classes to reference. I've also added type hints for
the review request attributes.

  • Ran unit tests.
  • Smoke tested rbt commands.
  • Ran a test script with debug logging to see that the stub debug info
    looked as expected.

Changes between revision 1 and 2

orig
1
2

Commits

Summary ID Author
Add stub functionality for base resources and implement review request.
This change adds support for `@api_stub` for the base resource class, used for "special" links (create/update/delete/etc) as well as for any resource-specific links. This also adds a new decorator, `@request_method_returns`, which works like `@request_method`, but can plumb through a specific return type. This has been used to make `ResourceLinkField` generic, so that calls to a `ResourceLinkField.get()` method can specify their return type as a specific resource subclass. Stubs for common special methods have been added to Resource, ItemResource, and ListResource. This change also adds resource-specific stubs to ReviewRequestItemResource, for those links where we have existing resource classes to reference. I've also added type hints for the review request attributes. Testing Done: - Ran unit tests. - Smoke tested rbt commands. - Ran a test script with debug logging to see that the stub debug info looked as expected.
5d106f3394dd0335baa81314052a02e56e4a7b9e David Trowbridge
Add stub functionality for base resources and implement review request.
This change adds support for `@api_stub` for the base resource class, used for "special" links (create/update/delete/etc) as well as for any resource-specific links. This also adds a new decorator, `@request_method_returns`, which works like `@request_method`, but can plumb through a specific return type. This has been used to make `ResourceLinkField` generic, so that calls to a `ResourceLinkField.get()` method can specify their return type as a specific resource subclass. Stubs for common special methods have been added to Resource, ItemResource, and ListResource. This change also adds resource-specific stubs to ReviewRequestItemResource, for those links where we have existing resource classes to reference. I've also added type hints for the review request attributes. Testing Done: - Ran unit tests. - Smoke tested rbt commands. - Ran a test script with debug logging to see that the stub debug info looked as expected.
f39898895b23afca59ccf4646b5c8055b678d1cc David Trowbridge
rbtools/api/resource/base.py
rbtools/api/resource/mixins.py
Loading...