From d29071f5f85391cae02aa6d5f2118b787994f465 Mon Sep 17 00:00:00 2001 From: Andreas Ellewsen Date: Wed, 27 Jan 2021 16:31:59 +0100 Subject: [PATCH 1/3] Run black on project --- tests/test_client.py | 1 + tests/test_model.py | 1 + tests/test_urls.py | 1 + ubw_client/client.py | 45 +++++++++++++++++++++++++------------------- ubw_client/models.py | 4 ++-- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/tests/test_client.py b/tests/test_client.py index 6743240..c00ecb9 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 4255774..f5f3127 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 ab39f0d..41a0e7e 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 a220c09..f8b13a4 100644 --- a/ubw_client/client.py +++ b/ubw_client/client.py @@ -546,29 +546,36 @@ class UBWClient: 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]: + 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 9f444d1..1510756 100644 --- a/ubw_client/models.py +++ b/ubw_client/models.py @@ -608,8 +608,8 @@ class Usage(BaseModel): def bruker_model_to_lower_camel(s: str) -> str: """Alias generator to avoid breaking PEP8""" - if s == 'role_and_company': - return 'rolesAndCompanies' + if s == "role_and_company": + return "rolesAndCompanies" else: first, *others = s.split("_") return "".join([first.lower(), *map(str.capitalize, others)]) -- GitLab From 561a6b1a6b98241714189951dc175a3c9c533c79 Mon Sep 17 00:00:00 2001 From: Andreas Ellewsen Date: Wed, 27 Jan 2021 16:32:20 +0100 Subject: [PATCH 2/3] Add ext_inv_ref field to Transaction --- ubw_client/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ubw_client/models.py b/ubw_client/models.py index 1510756..185c415 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: -- GitLab From aba1372f7888cf01d39feb9ea018255dcb159ee4 Mon Sep 17 00:00:00 2001 From: Andreas Ellewsen Date: Wed, 27 Jan 2021 16:52:51 +0100 Subject: [PATCH 3/3] Simplify alias handling and fix test --- tests/fixtures/bruker.json | 2 +- ubw_client/client.py | 3 ++- ubw_client/models.py | 15 ++++----------- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/tests/fixtures/bruker.json b/tests/fixtures/bruker.json index 41f700a..d8164bb 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/ubw_client/client.py b/ubw_client/client.py index f8b13a4..237a223 100644 --- a/ubw_client/client.py +++ b/ubw_client/client.py @@ -545,7 +545,8 @@ 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 + # 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]: diff --git a/ubw_client/models.py b/ubw_client/models.py index 185c415..791d122 100644 --- a/ubw_client/models.py +++ b/ubw_client/models.py @@ -607,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 @@ -626,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 -- GitLab