diff --git a/tests/fixtures/bruker.json b/tests/fixtures/bruker.json index 41f700a515a3762722ff5f596fb2e66e6033f048..d8164bb079a2a57d01c2bf30cce36a6ea60939b4 100644 --- a/tests/fixtures/bruker.json +++ b/tests/fixtures/bruker.json @@ -20,7 +20,7 @@ "passwordUpdated": "2019-03-14T18:50:10.827", "unit4Id": "" }, - "roleAndCompany": [ + "rolesAndCompanies": [ { "roleId": "D-ANMODER", "companyId": "72", diff --git a/tests/test_client.py b/tests/test_client.py index 6743240958996a455c41ec3413132f77589a417d..c00ecb9144573f6726ede41018f3162ce4b774ff 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -472,6 +472,7 @@ def test_get_bilagstype(client, requests_mock, bilagstype_data): expected = Bilagstype.from_dict(bilagstype_data[0]) assert expected == received + def test_get_ressurs(client, base_url, requests_mock, ressurs_data): company_id = "72" ressurs_id = "99999" diff --git a/tests/test_model.py b/tests/test_model.py index 4255774cf53dcff41a1d7d45ed9709e92c5a0b81..f5f31277b5ee03331b18013c1fb4206b8fdc5dcd 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -98,6 +98,7 @@ def test_bilagstype(bilagstype_data): assert model.updated_at == bilagstype_data[0]["updatedAt"] assert model.updated_by == bilagstype_data[0]["updatedBy"] + def test_ressurs(ressurs_data): model = Ressurs(**ressurs_data[0]) assert model.age == ressurs_data[0]["age"] diff --git a/tests/test_urls.py b/tests/test_urls.py index ab39f0d396035d4227831d9477bc26d8ffe6415c..41a0e7eeca1e5cd842165fd3d9a824d1f4827284 100644 --- a/tests/test_urls.py +++ b/tests/test_urls.py @@ -158,6 +158,7 @@ def test_bilagstyper_url_no_override_wo_trailing_slash(config_no_overrides): url = client.urls.get_bilagstype("72", "TT") assert url == "https://example.com/base/bilagstyper/v1/72/TT" + def test_ressurser_url_no_override_w_trailing_slash(config_no_overrides): config_no_overrides["rest"]["base_url"] += "base/" # trailing slash client = get_client(**config_no_overrides) diff --git a/ubw_client/client.py b/ubw_client/client.py index a220c090db91222b3201dc08b5827628eaa77e4d..237a2236b26024a7e0cf0cfcbb2b5d6b93f59647 100644 --- a/ubw_client/client.py +++ b/ubw_client/client.py @@ -545,30 +545,38 @@ class UBWClient: r = self.get(url, headers=headers) return [models.Arbeidsordre.from_dict(x) for x in r] - # TODO: Extend get_arbeidsordrer to support the same partial model as the following function - def get_partial_arbeidsordrer(self, company_id: str) -> typing.List[models.PartialArbeidsordre]: + # TODO: Extend get_arbeidsordrer to support the same partial model as the following + # function + def get_partial_arbeidsordrer( + self, company_id: str + ) -> typing.List[models.PartialArbeidsordre]: url = self.urls.get_arbeidsordre(company_id) headers = self.config.rest.endpoints.begreper.headers - r = self.get(url, - headers=headers, - params={ - 'select': ','.join( - ['companyId', - 'workOrderId', - 'dateFrom', - 'dateTo', - 'periodFrom', - 'periodTo', - 'status', - 'projectId', - 'workOrderName', - 'costCentre', - 'projectManagerId', - 'category1', - 'lastUpdated(updatedAt,updatedBy)'])}) + r = self.get( + url, + headers=headers, + params={ + "select": ",".join( + [ + "companyId", + "workOrderId", + "dateFrom", + "dateTo", + "periodFrom", + "periodTo", + "status", + "projectId", + "workOrderName", + "costCentre", + "projectManagerId", + "category1", + "lastUpdated(updatedAt,updatedBy)", + ] + ) + }, + ) return [models.PartialArbeidsordre.from_dict(x) for x in r] - def get_perioder( self, company_id: str, diff --git a/ubw_client/models.py b/ubw_client/models.py index 9f444d110b951ae6f002aa22218439ef8da31501..791d12274b9d821b2a179402fdde70d868cd06e6 100644 --- a/ubw_client/models.py +++ b/ubw_client/models.py @@ -155,6 +155,7 @@ class Transaction(BaseModel): voucher_no: int voucher_type: str ex_ref: typing.Optional[str] + ext_inv_ref: typing.Optional[str] ext_arch_ref_col: typing.Optional[str] class Config: @@ -606,15 +607,6 @@ class Usage(BaseModel): allow_population_by_field_name = True -def bruker_model_to_lower_camel(s: str) -> str: - """Alias generator to avoid breaking PEP8""" - if s == 'role_and_company': - return 'rolesAndCompanies' - else: - first, *others = s.split("_") - return "".join([first.lower(), *map(str.capitalize, others)]) - - class Bruker(BaseModel): user_id: str user_name: str @@ -625,10 +617,12 @@ class Bruker(BaseModel): language_code: typing.Optional[str] usage: typing.Optional[Usage] contact_points: typing.Optional[typing.List[ContactPoint]] - role_and_company: typing.Optional[typing.List[RoleAndCompany]] + role_and_company: typing.Optional[typing.List[RoleAndCompany]] = pydantic.Field( + alias="rolesAndCompanies" + ) class Config: - alias_generator = bruker_model_to_lower_camel + alias_generator = to_lower_camel allow_population_by_field_name = True