Skip to content

Commit 3cbd0f4

Browse files
authored
MPT-14077 Add notifications subscribers (#88)
2 parents da0edd7 + 56d24db commit 3cbd0f4

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from mpt_api_client.http import AsyncService, Service
2+
from mpt_api_client.http.mixins import (
3+
AsyncCreateMixin,
4+
AsyncDeleteMixin,
5+
AsyncUpdateMixin,
6+
CreateMixin,
7+
DeleteMixin,
8+
UpdateMixin,
9+
)
10+
from mpt_api_client.models import Model
11+
12+
13+
class Subscriber(Model):
14+
"""Subscriber resource."""
15+
16+
17+
class SubscribersServiceConfig:
18+
"""Subscribers service config."""
19+
20+
_endpoint = "/public/v1/notifications/subscribers"
21+
_model_class = Subscriber
22+
_collection_key = "data"
23+
24+
25+
class SubscribersService( # noqa: WPS215
26+
CreateMixin[Subscriber],
27+
UpdateMixin[Subscriber],
28+
DeleteMixin,
29+
Service[Subscriber],
30+
SubscribersServiceConfig,
31+
):
32+
"""Subscribers service."""
33+
34+
35+
class AsyncSubscribersService( # noqa: WPS215
36+
AsyncCreateMixin[Subscriber],
37+
AsyncUpdateMixin[Subscriber],
38+
AsyncDeleteMixin,
39+
AsyncService[Subscriber],
40+
SubscribersServiceConfig,
41+
):
42+
"""Async Subscribers service."""
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import pytest
2+
3+
from mpt_api_client.resources.notifications.subscribers import (
4+
AsyncSubscribersService,
5+
SubscribersService,
6+
)
7+
8+
9+
@pytest.fixture
10+
def subscribers_service(http_client):
11+
return SubscribersService(http_client=http_client)
12+
13+
14+
@pytest.fixture
15+
def async_subscribers_service(async_http_client):
16+
return AsyncSubscribersService(http_client=async_http_client)
17+
18+
19+
@pytest.mark.parametrize("method", ["create", "update", "delete", "get", "iterate"])
20+
def test_mixins_present(subscribers_service, method):
21+
assert hasattr(subscribers_service, method)
22+
23+
24+
@pytest.mark.parametrize("method", ["create", "update", "delete", "get", "iterate"])
25+
def test_async_mixins_present(async_subscribers_service, method):
26+
assert hasattr(async_subscribers_service, method)

0 commit comments

Comments
 (0)