Skip to content

Commit 06ee5af

Browse files
authored
[MPT-13834] Added billing manual overrides endpoints (#57)
Added billing manual overrides endpoints https://softwareone.atlassian.net/browse/MPT-13834
2 parents 7213526 + 5707cfc commit 06ee5af

File tree

5 files changed

+91
-1
lines changed

5 files changed

+91
-1
lines changed

mpt_api_client/resources/billing/billing.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
from mpt_api_client.resources.billing.invoices import AsyncInvoicesService, InvoicesService
1111
from mpt_api_client.resources.billing.journals import AsyncJournalsService, JournalsService
1212
from mpt_api_client.resources.billing.ledgers import AsyncLedgersService, LedgersService
13+
from mpt_api_client.resources.billing.manual_overrides import (
14+
AsyncManualOverridesService,
15+
ManualOverridesService,
16+
)
1317
from mpt_api_client.resources.billing.statements import AsyncStatementsService, StatementsService
1418

1519

@@ -49,6 +53,11 @@ def credit_memos(self) -> CreditMemosService:
4953
"""Credit Memos service."""
5054
return CreditMemosService(http_client=self.http_client)
5155

56+
@property
57+
def manual_overrides(self) -> ManualOverridesService:
58+
"""Manual overrides service."""
59+
return ManualOverridesService(http_client=self.http_client)
60+
5261

5362
class AsyncBilling:
5463
"""Billing MPT API Module."""
@@ -85,3 +94,8 @@ def custom_ledgers(self) -> AsyncCustomLedgersService:
8594
def credit_memos(self) -> AsyncCreditMemosService:
8695
"""Credit Memos service."""
8796
return AsyncCreditMemosService(http_client=self.http_client)
97+
98+
@property
99+
def manual_overrides(self) -> AsyncManualOverridesService:
100+
"""Manual overrides service."""
101+
return AsyncManualOverridesService(http_client=self.http_client)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from mpt_api_client.http import AsyncService, Service
2+
from mpt_api_client.http.mixins import (
3+
AsyncCreateMixin,
4+
AsyncUpdateMixin,
5+
CreateMixin,
6+
UpdateMixin,
7+
)
8+
from mpt_api_client.models import Model
9+
10+
11+
class ManualOverride(Model):
12+
"""Manual Override resource."""
13+
14+
15+
class ManualOverridesServiceConfig:
16+
"""Manual Overrides service configuration."""
17+
18+
_endpoint = "/public/v1/billing/manual-overrides"
19+
_model_class = ManualOverride
20+
_collection_key = "data"
21+
22+
23+
class ManualOverridesService(
24+
CreateMixin[ManualOverride],
25+
UpdateMixin[ManualOverride],
26+
Service[ManualOverride],
27+
ManualOverridesServiceConfig,
28+
):
29+
"""Manual Overrides service."""
30+
31+
32+
class AsyncManualOverridesService(
33+
AsyncCreateMixin[ManualOverride],
34+
AsyncUpdateMixin[ManualOverride],
35+
AsyncService[ManualOverride],
36+
ManualOverridesServiceConfig,
37+
):
38+
"""Async Manual Overrides service."""

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extend-ignore =
3232

3333

3434
per-file-ignores =
35-
mpt_api_client/resources/billing/*.py: WPS215 WPS202
35+
mpt_api_client/resources/billing/*.py: WPS215 WPS202 WPS214
3636
mpt_api_client/resources/catalog/*.py: WPS110 WPS215 WPS214
3737
mpt_api_client/resources/commerce/*.py: WPS215
3838
mpt_api_client/rql/query_builder.py: WPS110 WPS115 WPS210 WPS214

tests/resources/billing/test_billing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
from mpt_api_client.resources.billing.invoices import AsyncInvoicesService, InvoicesService
1313
from mpt_api_client.resources.billing.journals import AsyncJournalsService, JournalsService
1414
from mpt_api_client.resources.billing.ledgers import AsyncLedgersService, LedgersService
15+
from mpt_api_client.resources.billing.manual_overrides import (
16+
AsyncManualOverridesService,
17+
ManualOverridesService,
18+
)
1519
from mpt_api_client.resources.billing.statements import AsyncStatementsService, StatementsService
1620

1721

@@ -34,6 +38,7 @@ def async_billing(async_http_client):
3438
("invoices", InvoicesService),
3539
("custom_ledgers", CustomLedgersService),
3640
("credit_memos", CreditMemosService),
41+
("manual_overrides", ManualOverridesService),
3742
],
3843
)
3944
def test_billing_properties(billing, property_name, expected_service_class):
@@ -53,6 +58,7 @@ def test_billing_properties(billing, property_name, expected_service_class):
5358
("invoices", AsyncInvoicesService),
5459
("custom_ledgers", AsyncCustomLedgersService),
5560
("credit_memos", AsyncCreditMemosService),
61+
("manual_overrides", AsyncManualOverridesService),
5662
],
5763
)
5864
def test_async_billing_properties(async_billing, property_name, expected_service_class):
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import pytest
2+
3+
from mpt_api_client.resources.billing.manual_overrides import (
4+
AsyncManualOverridesService,
5+
ManualOverridesService,
6+
)
7+
8+
9+
@pytest.fixture
10+
def manual_overrides_service(http_client):
11+
return ManualOverridesService(http_client=http_client)
12+
13+
14+
@pytest.fixture
15+
def async_manual_overrides_service(http_client):
16+
return AsyncManualOverridesService(http_client=http_client)
17+
18+
19+
@pytest.mark.parametrize(
20+
"method",
21+
["get", "create", "update"],
22+
)
23+
def test_mixins_present(manual_overrides_service, method):
24+
assert hasattr(manual_overrides_service, method)
25+
26+
27+
@pytest.mark.parametrize(
28+
"method",
29+
["get", "create", "update"],
30+
)
31+
def test_async_mixins_present(async_manual_overrides_service, method):
32+
assert hasattr(async_manual_overrides_service, method)

0 commit comments

Comments
 (0)