Skip to content

Commit 8b62011

Browse files
author
Robert Segal
committed
Added billing manual overrides endpoints
1 parent 835e706 commit 8b62011

File tree

4 files changed

+90
-0
lines changed

4 files changed

+90
-0
lines changed

mpt_api_client/resources/billing/billing.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
from mpt_api_client.http import AsyncHTTPClient, HTTPClient
22
from mpt_api_client.resources.billing.journals import AsyncJournalsService, JournalsService
33
from mpt_api_client.resources.billing.ledgers import AsyncLedgersService, LedgersService
4+
from mpt_api_client.resources.billing.manual_overrides import (
5+
AsyncManualOverridesService,
6+
ManualOverridesService,
7+
)
48

59

610
class Billing:
@@ -19,6 +23,11 @@ def ledgers(self) -> LedgersService:
1923
"""Ledgers service."""
2024
return LedgersService(http_client=self.http_client)
2125

26+
@property
27+
def manual_overrides(self) -> ManualOverridesService:
28+
"""Manual overrides service."""
29+
return ManualOverridesService(http_client=self.http_client)
30+
2231

2332
class AsyncBilling:
2433
"""Billing MPT API Module."""
@@ -35,3 +44,8 @@ def journals(self) -> AsyncJournalsService:
3544
def ledgers(self) -> AsyncLedgersService:
3645
"""Ledgers service."""
3746
return AsyncLedgersService(http_client=self.http_client)
47+
48+
@property
49+
def manual_overrides(self) -> AsyncManualOverridesService:
50+
"""Manual overrides service."""
51+
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."""

tests/resources/billing/test_billing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
from mpt_api_client.resources.billing.billing import AsyncBilling, Billing
44
from mpt_api_client.resources.billing.journals import AsyncJournalsService, JournalsService
55
from mpt_api_client.resources.billing.ledgers import AsyncLedgersService, LedgersService
6+
from mpt_api_client.resources.billing.manual_overrides import (
7+
AsyncManualOverridesService,
8+
ManualOverridesService,
9+
)
610

711

812
@pytest.fixture
@@ -20,6 +24,7 @@ def async_billing(async_http_client):
2024
[
2125
("journals", JournalsService),
2226
("ledgers", LedgersService),
27+
("manual_overrides", ManualOverridesService),
2328
],
2429
)
2530
def test_billing_properties(billing, property_name, expected_service_class):
@@ -35,6 +40,7 @@ def test_billing_properties(billing, property_name, expected_service_class):
3540
[
3641
("journals", AsyncJournalsService),
3742
("ledgers", AsyncLedgersService),
43+
("manual_overrides", AsyncManualOverridesService),
3844
],
3945
)
4046
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)