diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b286e5a..81f6dc20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,6 @@ jobs: lint: name: lint runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 @@ -33,7 +32,6 @@ jobs: test: name: test runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 511722b9..ba231b07 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.20.1" + ".": "1.21.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index a45a587e..f9cf330b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 46 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-14d375aab89e6b212fe459805a42d6ea7d7da8eae2037ae710a187d06911be1d.yml -openapi_spec_hash: 08b86ecbec3323717d48e4aaee48ed54 -config_hash: ce10384813f68ba3fed61c7b601b396b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-bf858f37d7ab420841ddc6329dad8c46377308b6a5c8e935908011d0f9845e22.yml +openapi_spec_hash: 2523952a32436e3c7fd3b55508c2e7ee +config_hash: 53778a0b839c4f6ad34fbba051f5e8a6 diff --git a/CHANGELOG.md b/CHANGELOG.md index 356b6ee9..2db87fef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## 1.21.0 (2025-04-09) + +Full Changelog: [v1.20.1...v1.21.0](https://github.com/Finch-API/finch-api-python/compare/v1.20.1...v1.21.0) + +### Features + +* **api:** add models for hrs benefits individuals async responses ([6452c2c](https://github.com/Finch-API/finch-api-python/commit/6452c2ce11111b2eba1c2cb941ccd32fdd1c5a82)) +* **api:** api update ([#646](https://github.com/Finch-API/finch-api-python/issues/646)) ([7ac8751](https://github.com/Finch-API/finch-api-python/commit/7ac875106bdcfb8bfb097b971f48ecd88d06c26a)) +* **api:** benefits mutation API endpoints (create benefit, update benefit, enroll individual, unenroll individual) now properly return async response types ([#649](https://github.com/Finch-API/finch-api-python/issues/649)) ([4109f6c](https://github.com/Finch-API/finch-api-python/commit/4109f6cd3a880cab1e7ca9d90d8a29cf0ce737f4)) + + +### Chores + +* fix typo ([8772010](https://github.com/Finch-API/finch-api-python/commit/8772010e01df66a41bae7b5689bf7af20f2c0411)) +* fix typo ([#650](https://github.com/Finch-API/finch-api-python/issues/650)) ([17dc2ea](https://github.com/Finch-API/finch-api-python/commit/17dc2ea50995d6883ad07a77a4c039a8c097253f)) +* **internal:** expand CI branch coverage ([#648](https://github.com/Finch-API/finch-api-python/issues/648)) ([bc6c22d](https://github.com/Finch-API/finch-api-python/commit/bc6c22d497fe8bb886e34095b01016904fe8258d)) +* **internal:** reduce CI branch coverage ([bad1202](https://github.com/Finch-API/finch-api-python/commit/bad1202ad8b8e73fb4ae4c8624405997c2ad33e2)) + ## 1.20.1 (2025-04-08) Full Changelog: [v1.20.0...v1.20.1](https://github.com/Finch-API/finch-api-python/compare/v1.20.0...v1.20.1) diff --git a/api.md b/api.md index 13b455d8..1e750c7c 100644 --- a/api.md +++ b/api.md @@ -170,6 +170,7 @@ from finch.types.hris import ( SupportPerBenefitType, SupportedBenefit, UpdateCompanyBenefitResponse, + BenefitListSupportedBenefitsResponse, BenfitContribution, ) ``` @@ -180,7 +181,7 @@ Methods: - client.hris.benefits.retrieve(benefit_id) -> CompanyBenefit - client.hris.benefits.update(benefit_id, \*\*params) -> UpdateCompanyBenefitResponse - client.hris.benefits.list() -> SyncSinglePage[CompanyBenefit] -- client.hris.benefits.list_supported_benefits() -> SyncSinglePage[SupportedBenefit] +- client.hris.benefits.list_supported_benefits() -> SyncSinglePage[BenefitListSupportedBenefitsResponse] ### Individuals @@ -188,19 +189,19 @@ Types: ```python from finch.types.hris.benefits import ( - EnrolledIndividual, + EnrolledIndividualBenefitResponse, IndividualBenefit, - UnenrolledIndividual, + UnenrolledIndividualBenefitResponse, IndividualEnrolledIDsResponse, ) ``` Methods: -- client.hris.benefits.individuals.enroll_many(benefit_id, \*\*params) -> SyncSinglePage[EnrolledIndividual] +- client.hris.benefits.individuals.enroll_many(benefit_id, \*\*params) -> EnrolledIndividualBenefitResponse - client.hris.benefits.individuals.enrolled_ids(benefit_id) -> IndividualEnrolledIDsResponse - client.hris.benefits.individuals.retrieve_many_benefits(benefit_id, \*\*params) -> SyncSinglePage[IndividualBenefit] -- client.hris.benefits.individuals.unenroll_many(benefit_id, \*\*params) -> SyncSinglePage[UnenrolledIndividual] +- client.hris.benefits.individuals.unenroll_many(benefit_id, \*\*params) -> UnenrolledIndividualBenefitResponse # Providers diff --git a/pyproject.toml b/pyproject.toml index 7506addc..0080f7bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "finch-api" -version = "1.20.1" +version = "1.21.0" description = "The official Python library for the Finch API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/finch/_version.py b/src/finch/_version.py index 15f2237e..4bdbe1a5 100644 --- a/src/finch/_version.py +++ b/src/finch/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "finch" -__version__ = "1.20.1" # x-release-please-version +__version__ = "1.21.0" # x-release-please-version diff --git a/src/finch/resources/hris/benefits/benefits.py b/src/finch/resources/hris/benefits/benefits.py index cc24e7e1..28fc3a75 100644 --- a/src/finch/resources/hris/benefits/benefits.py +++ b/src/finch/resources/hris/benefits/benefits.py @@ -29,9 +29,9 @@ from ....types.hris.benefit_type import BenefitType from ....types.hris.company_benefit import CompanyBenefit from ....types.hris.benefit_frequency import BenefitFrequency -from ....types.hris.supported_benefit import SupportedBenefit from ....types.hris.update_company_benefit_response import UpdateCompanyBenefitResponse from ....types.hris.create_company_benefits_response import CreateCompanyBenefitsResponse +from ....types.hris.benefit_list_supported_benefits_response import BenefitListSupportedBenefitsResponse __all__ = ["Benefits", "AsyncBenefits"] @@ -210,15 +210,15 @@ def list_supported_benefits( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SyncSinglePage[SupportedBenefit]: + ) -> SyncSinglePage[BenefitListSupportedBenefitsResponse]: """Get deductions metadata""" return self._get_api_list( "/employer/benefits/meta", - page=SyncSinglePage[SupportedBenefit], + page=SyncSinglePage[BenefitListSupportedBenefitsResponse], options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=SupportedBenefit, + model=BenefitListSupportedBenefitsResponse, ) @@ -396,15 +396,15 @@ def list_supported_benefits( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncPaginator[SupportedBenefit, AsyncSinglePage[SupportedBenefit]]: + ) -> AsyncPaginator[BenefitListSupportedBenefitsResponse, AsyncSinglePage[BenefitListSupportedBenefitsResponse]]: """Get deductions metadata""" return self._get_api_list( "/employer/benefits/meta", - page=AsyncSinglePage[SupportedBenefit], + page=AsyncSinglePage[BenefitListSupportedBenefitsResponse], options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=SupportedBenefit, + model=BenefitListSupportedBenefitsResponse, ) diff --git a/src/finch/resources/hris/benefits/individuals.py b/src/finch/resources/hris/benefits/individuals.py index c6e472cf..604f867d 100644 --- a/src/finch/resources/hris/benefits/individuals.py +++ b/src/finch/resources/hris/benefits/individuals.py @@ -8,7 +8,10 @@ from .... import _legacy_response from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ...._utils import maybe_transform +from ...._utils import ( + maybe_transform, + async_maybe_transform, +) from ...._compat import cached_property from ...._resource import SyncAPIResource, AsyncAPIResource from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper @@ -20,9 +23,9 @@ individual_retrieve_many_benefits_params, ) from ....types.hris.benefits.individual_benefit import IndividualBenefit -from ....types.hris.benefits.enrolled_individual import EnrolledIndividual -from ....types.hris.benefits.unenrolled_individual import UnenrolledIndividual from ....types.hris.benefits.individual_enrolled_ids_response import IndividualEnrolledIDsResponse +from ....types.hris.benefits.enrolled_individual_benefit_response import EnrolledIndividualBenefitResponse +from ....types.hris.benefits.unenrolled_individual_benefit_response import UnenrolledIndividualBenefitResponse __all__ = ["Individuals", "AsyncIndividuals"] @@ -58,7 +61,7 @@ def enroll_many( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SyncSinglePage[EnrolledIndividual]: + ) -> EnrolledIndividualBenefitResponse: """Enroll an individual into a deduction or contribution. This is an overwrite @@ -79,15 +82,13 @@ def enroll_many( """ if not benefit_id: raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}") - return self._get_api_list( + return self._post( f"/employer/benefits/{benefit_id}/individuals", - page=SyncSinglePage[EnrolledIndividual], body=maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=EnrolledIndividual, - method="post", + cast_to=EnrolledIndividualBenefitResponse, ) def enrolled_ids( @@ -179,7 +180,7 @@ def unenroll_many( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SyncSinglePage[UnenrolledIndividual]: + ) -> UnenrolledIndividualBenefitResponse: """ Unenroll individuals from a deduction or contribution @@ -196,17 +197,15 @@ def unenroll_many( """ if not benefit_id: raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}") - return self._get_api_list( + return self._delete( f"/employer/benefits/{benefit_id}/individuals", - page=SyncSinglePage[UnenrolledIndividual], body=maybe_transform( {"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=UnenrolledIndividual, - method="delete", + cast_to=UnenrolledIndividualBenefitResponse, ) @@ -230,7 +229,7 @@ def with_streaming_response(self) -> AsyncIndividualsWithStreamingResponse: """ return AsyncIndividualsWithStreamingResponse(self) - def enroll_many( + async def enroll_many( self, benefit_id: str, *, @@ -241,7 +240,7 @@ def enroll_many( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncPaginator[EnrolledIndividual, AsyncSinglePage[EnrolledIndividual]]: + ) -> EnrolledIndividualBenefitResponse: """Enroll an individual into a deduction or contribution. This is an overwrite @@ -262,15 +261,13 @@ def enroll_many( """ if not benefit_id: raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}") - return self._get_api_list( + return await self._post( f"/employer/benefits/{benefit_id}/individuals", - page=AsyncSinglePage[EnrolledIndividual], - body=maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]), + body=await async_maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=EnrolledIndividual, - method="post", + cast_to=EnrolledIndividualBenefitResponse, ) async def enrolled_ids( @@ -351,7 +348,7 @@ def retrieve_many_benefits( model=IndividualBenefit, ) - def unenroll_many( + async def unenroll_many( self, benefit_id: str, *, @@ -362,7 +359,7 @@ def unenroll_many( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncPaginator[UnenrolledIndividual, AsyncSinglePage[UnenrolledIndividual]]: + ) -> UnenrolledIndividualBenefitResponse: """ Unenroll individuals from a deduction or contribution @@ -379,17 +376,15 @@ def unenroll_many( """ if not benefit_id: raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}") - return self._get_api_list( + return await self._delete( f"/employer/benefits/{benefit_id}/individuals", - page=AsyncSinglePage[UnenrolledIndividual], - body=maybe_transform( + body=await async_maybe_transform( {"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - model=UnenrolledIndividual, - method="delete", + cast_to=UnenrolledIndividualBenefitResponse, ) diff --git a/src/finch/types/hris/__init__.py b/src/finch/types/hris/__init__.py index 40744f3e..4f9edc30 100644 --- a/src/finch/types/hris/__init__.py +++ b/src/finch/types/hris/__init__.py @@ -14,7 +14,6 @@ from .benefits_support import BenefitsSupport as BenefitsSupport from .benefit_frequency import BenefitFrequency as BenefitFrequency from .document_response import DocumentResponse as DocumentResponse -from .supported_benefit import SupportedBenefit as SupportedBenefit from .benfit_contribution import BenfitContribution as BenfitContribution from .individual_response import IndividualResponse as IndividualResponse from .payment_list_params import PaymentListParams as PaymentListParams @@ -37,3 +36,6 @@ from .create_company_benefits_response import CreateCompanyBenefitsResponse as CreateCompanyBenefitsResponse from .directory_list_individuals_params import DirectoryListIndividualsParams as DirectoryListIndividualsParams from .pay_statement_retrieve_many_params import PayStatementRetrieveManyParams as PayStatementRetrieveManyParams +from .benefit_list_supported_benefits_response import ( + BenefitListSupportedBenefitsResponse as BenefitListSupportedBenefitsResponse, +) diff --git a/src/finch/types/hris/supported_benefit.py b/src/finch/types/hris/benefit_list_supported_benefits_response.py similarity index 88% rename from src/finch/types/hris/supported_benefit.py rename to src/finch/types/hris/benefit_list_supported_benefits_response.py index ef148ffa..e29b2b7f 100644 --- a/src/finch/types/hris/supported_benefit.py +++ b/src/finch/types/hris/benefit_list_supported_benefits_response.py @@ -4,13 +4,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from .benefit_type import BenefitType from .benefit_frequency import BenefitFrequency -__all__ = ["SupportedBenefit"] +__all__ = ["BenefitListSupportedBenefitsResponse"] -class SupportedBenefit(BaseModel): +class BenefitListSupportedBenefitsResponse(BaseModel): annual_maximum: Optional[bool] = None """Whether the provider supports an annual maximum for this benefit.""" @@ -43,6 +42,3 @@ class SupportedBenefit(BaseModel): Empty if this feature is not supported for the benefit. This array only has values for HSA benefits. """ - - type: Optional[BenefitType] = None - """Type of benefit.""" diff --git a/src/finch/types/hris/benefits/__init__.py b/src/finch/types/hris/benefits/__init__.py index 4cca9ced..90057bb2 100644 --- a/src/finch/types/hris/benefits/__init__.py +++ b/src/finch/types/hris/benefits/__init__.py @@ -3,11 +3,13 @@ from __future__ import annotations from .individual_benefit import IndividualBenefit as IndividualBenefit -from .enrolled_individual import EnrolledIndividual as EnrolledIndividual -from .unenrolled_individual import UnenrolledIndividual as UnenrolledIndividual from .individual_enroll_many_params import IndividualEnrollManyParams as IndividualEnrollManyParams from .individual_unenroll_many_params import IndividualUnenrollManyParams as IndividualUnenrollManyParams from .individual_enrolled_ids_response import IndividualEnrolledIDsResponse as IndividualEnrolledIDsResponse +from .enrolled_individual_benefit_response import EnrolledIndividualBenefitResponse as EnrolledIndividualBenefitResponse +from .unenrolled_individual_benefit_response import ( + UnenrolledIndividualBenefitResponse as UnenrolledIndividualBenefitResponse, +) from .individual_retrieve_many_benefits_params import ( IndividualRetrieveManyBenefitsParams as IndividualRetrieveManyBenefitsParams, ) diff --git a/src/finch/types/hris/benefits/enrolled_individual.py b/src/finch/types/hris/benefits/enrolled_individual.py deleted file mode 100644 index c8d6f912..00000000 --- a/src/finch/types/hris/benefits/enrolled_individual.py +++ /dev/null @@ -1,28 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from ...._models import BaseModel - -__all__ = ["EnrolledIndividual", "Body"] - - -class Body(BaseModel): - finch_code: Optional[str] = None - """A descriptive identifier for the response.""" - - message: Optional[str] = None - """Short description in English that provides more information about the response.""" - - name: Optional[str] = None - """Identifier indicating whether the benefit was newly enrolled or updated.""" - - -class EnrolledIndividual(BaseModel): - body: Optional[Body] = None - - code: Optional[Literal[200, 201, 404, 403]] = None - """HTTP status code. Either 201 or 200""" - - individual_id: Optional[str] = None diff --git a/src/finch/types/hris/benefits/enrolled_individual_benefit_response.py b/src/finch/types/hris/benefits/enrolled_individual_benefit_response.py new file mode 100644 index 00000000..0b42e9b4 --- /dev/null +++ b/src/finch/types/hris/benefits/enrolled_individual_benefit_response.py @@ -0,0 +1,10 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from ...._models import BaseModel + +__all__ = ["EnrolledIndividualBenefitResponse"] + + +class EnrolledIndividualBenefitResponse(BaseModel): + job_id: str diff --git a/src/finch/types/hris/benefits/unenrolled_individual.py b/src/finch/types/hris/benefits/unenrolled_individual.py deleted file mode 100644 index d9f10497..00000000 --- a/src/finch/types/hris/benefits/unenrolled_individual.py +++ /dev/null @@ -1,27 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["UnenrolledIndividual", "Body"] - - -class Body(BaseModel): - finch_code: Optional[str] = None - """A descriptive identifier for the response.""" - - message: Optional[str] = None - """Short description in English that provides more information about the response.""" - - name: Optional[str] = None - """Identifier indicating whether the benefit was newly enrolled or updated.""" - - -class UnenrolledIndividual(BaseModel): - body: Optional[Body] = None - - code: Optional[int] = None - """HTTP status code""" - - individual_id: Optional[str] = None diff --git a/src/finch/types/hris/benefits/unenrolled_individual_benefit_response.py b/src/finch/types/hris/benefits/unenrolled_individual_benefit_response.py new file mode 100644 index 00000000..aa539f3f --- /dev/null +++ b/src/finch/types/hris/benefits/unenrolled_individual_benefit_response.py @@ -0,0 +1,10 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from ...._models import BaseModel + +__all__ = ["UnenrolledIndividualBenefitResponse"] + + +class UnenrolledIndividualBenefitResponse(BaseModel): + job_id: str diff --git a/src/finch/types/hris/create_company_benefits_response.py b/src/finch/types/hris/create_company_benefits_response.py index e96088af..092bf5c9 100644 --- a/src/finch/types/hris/create_company_benefits_response.py +++ b/src/finch/types/hris/create_company_benefits_response.py @@ -9,3 +9,5 @@ class CreateCompanyBenefitsResponse(BaseModel): benefit_id: str """The id of the benefit.""" + + job_id: str diff --git a/src/finch/types/hris/update_company_benefit_response.py b/src/finch/types/hris/update_company_benefit_response.py index 865b10d6..8f6506e3 100644 --- a/src/finch/types/hris/update_company_benefit_response.py +++ b/src/finch/types/hris/update_company_benefit_response.py @@ -9,3 +9,5 @@ class UpdateCompanyBenefitResponse(BaseModel): benefit_id: str """The id of the benefit.""" + + job_id: str diff --git a/tests/api_resources/hris/benefits/test_individuals.py b/tests/api_resources/hris/benefits/test_individuals.py index d8677fa1..0800ed21 100644 --- a/tests/api_resources/hris/benefits/test_individuals.py +++ b/tests/api_resources/hris/benefits/test_individuals.py @@ -13,9 +13,9 @@ from finch.pagination import SyncSinglePage, AsyncSinglePage from finch.types.hris.benefits import ( IndividualBenefit, - EnrolledIndividual, - UnenrolledIndividual, IndividualEnrolledIDsResponse, + EnrolledIndividualBenefitResponse, + UnenrolledIndividualBenefitResponse, ) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -29,7 +29,7 @@ def test_method_enroll_many(self, client: Finch) -> None: individual = client.hris.benefits.individuals.enroll_many( benefit_id="benefit_id", ) - assert_matches_type(SyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_method_enroll_many_with_all_params(self, client: Finch) -> None: @@ -55,7 +55,7 @@ def test_method_enroll_many_with_all_params(self, client: Finch) -> None: } ], ) - assert_matches_type(SyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_raw_response_enroll_many(self, client: Finch) -> None: @@ -66,7 +66,7 @@ def test_raw_response_enroll_many(self, client: Finch) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(SyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_streaming_response_enroll_many(self, client: Finch) -> None: @@ -77,7 +77,7 @@ def test_streaming_response_enroll_many(self, client: Finch) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(SyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) assert cast(Any, response.is_closed) is True @@ -177,7 +177,7 @@ def test_method_unenroll_many(self, client: Finch) -> None: individual = client.hris.benefits.individuals.unenroll_many( benefit_id="benefit_id", ) - assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_method_unenroll_many_with_all_params(self, client: Finch) -> None: @@ -185,7 +185,7 @@ def test_method_unenroll_many_with_all_params(self, client: Finch) -> None: benefit_id="benefit_id", individual_ids=["string"], ) - assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_raw_response_unenroll_many(self, client: Finch) -> None: @@ -196,7 +196,7 @@ def test_raw_response_unenroll_many(self, client: Finch) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize def test_streaming_response_unenroll_many(self, client: Finch) -> None: @@ -207,7 +207,7 @@ def test_streaming_response_unenroll_many(self, client: Finch) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) assert cast(Any, response.is_closed) is True @@ -227,7 +227,7 @@ async def test_method_enroll_many(self, async_client: AsyncFinch) -> None: individual = await async_client.hris.benefits.individuals.enroll_many( benefit_id="benefit_id", ) - assert_matches_type(AsyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_method_enroll_many_with_all_params(self, async_client: AsyncFinch) -> None: @@ -253,7 +253,7 @@ async def test_method_enroll_many_with_all_params(self, async_client: AsyncFinch } ], ) - assert_matches_type(AsyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_raw_response_enroll_many(self, async_client: AsyncFinch) -> None: @@ -264,7 +264,7 @@ async def test_raw_response_enroll_many(self, async_client: AsyncFinch) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(AsyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_streaming_response_enroll_many(self, async_client: AsyncFinch) -> None: @@ -275,7 +275,7 @@ async def test_streaming_response_enroll_many(self, async_client: AsyncFinch) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = await response.parse() - assert_matches_type(AsyncSinglePage[EnrolledIndividual], individual, path=["response"]) + assert_matches_type(EnrolledIndividualBenefitResponse, individual, path=["response"]) assert cast(Any, response.is_closed) is True @@ -375,7 +375,7 @@ async def test_method_unenroll_many(self, async_client: AsyncFinch) -> None: individual = await async_client.hris.benefits.individuals.unenroll_many( benefit_id="benefit_id", ) - assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_method_unenroll_many_with_all_params(self, async_client: AsyncFinch) -> None: @@ -383,7 +383,7 @@ async def test_method_unenroll_many_with_all_params(self, async_client: AsyncFin benefit_id="benefit_id", individual_ids=["string"], ) - assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_raw_response_unenroll_many(self, async_client: AsyncFinch) -> None: @@ -394,7 +394,7 @@ async def test_raw_response_unenroll_many(self, async_client: AsyncFinch) -> Non assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = response.parse() - assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) @parametrize async def test_streaming_response_unenroll_many(self, async_client: AsyncFinch) -> None: @@ -405,7 +405,7 @@ async def test_streaming_response_unenroll_many(self, async_client: AsyncFinch) assert response.http_request.headers.get("X-Stainless-Lang") == "python" individual = await response.parse() - assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"]) + assert_matches_type(UnenrolledIndividualBenefitResponse, individual, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/hris/test_benefits.py b/tests/api_resources/hris/test_benefits.py index ce1adced..8d6507f9 100644 --- a/tests/api_resources/hris/test_benefits.py +++ b/tests/api_resources/hris/test_benefits.py @@ -12,9 +12,9 @@ from finch.pagination import SyncSinglePage, AsyncSinglePage from finch.types.hris import ( CompanyBenefit, - SupportedBenefit, UpdateCompanyBenefitResponse, CreateCompanyBenefitsResponse, + BenefitListSupportedBenefitsResponse, ) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -169,7 +169,7 @@ def test_streaming_response_list(self, client: Finch) -> None: @parametrize def test_method_list_supported_benefits(self, client: Finch) -> None: benefit = client.hris.benefits.list_supported_benefits() - assert_matches_type(SyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(SyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) @parametrize def test_raw_response_list_supported_benefits(self, client: Finch) -> None: @@ -178,7 +178,7 @@ def test_raw_response_list_supported_benefits(self, client: Finch) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" benefit = response.parse() - assert_matches_type(SyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(SyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) @parametrize def test_streaming_response_list_supported_benefits(self, client: Finch) -> None: @@ -187,7 +187,7 @@ def test_streaming_response_list_supported_benefits(self, client: Finch) -> None assert response.http_request.headers.get("X-Stainless-Lang") == "python" benefit = response.parse() - assert_matches_type(SyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(SyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) assert cast(Any, response.is_closed) is True @@ -341,7 +341,7 @@ async def test_streaming_response_list(self, async_client: AsyncFinch) -> None: @parametrize async def test_method_list_supported_benefits(self, async_client: AsyncFinch) -> None: benefit = await async_client.hris.benefits.list_supported_benefits() - assert_matches_type(AsyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(AsyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) @parametrize async def test_raw_response_list_supported_benefits(self, async_client: AsyncFinch) -> None: @@ -350,7 +350,7 @@ async def test_raw_response_list_supported_benefits(self, async_client: AsyncFin assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" benefit = response.parse() - assert_matches_type(AsyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(AsyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) @parametrize async def test_streaming_response_list_supported_benefits(self, async_client: AsyncFinch) -> None: @@ -359,6 +359,6 @@ async def test_streaming_response_list_supported_benefits(self, async_client: As assert response.http_request.headers.get("X-Stainless-Lang") == "python" benefit = await response.parse() - assert_matches_type(AsyncSinglePage[SupportedBenefit], benefit, path=["response"]) + assert_matches_type(AsyncSinglePage[BenefitListSupportedBenefitsResponse], benefit, path=["response"]) assert cast(Any, response.is_closed) is True