Skip to content

Commit fa20a06

Browse files
committed
Add support for the Webhook Endpoint resource
1 parent a9a8d75 commit fa20a06

File tree

4 files changed

+78
-0
lines changed

4 files changed

+78
-0
lines changed

stripe/api_resources/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,4 @@
5252
from stripe.api_resources.transfer import Transfer
5353
from stripe.api_resources.usage_record import UsageRecord
5454
from stripe.api_resources.usage_record_summary import UsageRecordSummary
55+
from stripe.api_resources.webhook_endpoint import WebhookEndpoint
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
from stripe.api_resources.abstract import CreateableAPIResource
4+
from stripe.api_resources.abstract import DeletableAPIResource
5+
from stripe.api_resources.abstract import UpdateableAPIResource
6+
from stripe.api_resources.abstract import ListableAPIResource
7+
8+
9+
class WebhookEndpoint(CreateableAPIResource, UpdateableAPIResource,
10+
DeletableAPIResource, ListableAPIResource):
11+
OBJECT_NAME = 'webhook_endpoint'

stripe/util.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ def load_object_classes():
214214
api_resources.UsageRecord.OBJECT_NAME: api_resources.UsageRecord,
215215
api_resources.UsageRecordSummary.OBJECT_NAME:
216216
api_resources.UsageRecordSummary,
217+
api_resources.WebhookEndpoint.OBJECT_NAME: api_resources.WebhookEndpoint,
217218
api_resources.terminal.Location.OBJECT_NAME:
218219
api_resources.terminal.Location,
219220
api_resources.terminal.ConnectionToken.OBJECT_NAME:
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
import stripe
4+
5+
6+
TEST_RESOURCE_ID = 'we_123'
7+
8+
9+
class TestWebhookEndpoint(object):
10+
def test_is_listable(self, request_mock):
11+
resources = stripe.WebhookEndpoint.list()
12+
request_mock.assert_requested(
13+
'get',
14+
'/v1/webhook_endpoints'
15+
)
16+
assert isinstance(resources.data, list)
17+
assert isinstance(resources.data[0], stripe.WebhookEndpoint)
18+
19+
def test_is_retrievable(self, request_mock):
20+
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
21+
request_mock.assert_requested(
22+
'get',
23+
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
24+
)
25+
assert isinstance(resource, stripe.WebhookEndpoint)
26+
27+
def test_is_creatable(self, request_mock):
28+
resource = stripe.WebhookEndpoint.create(
29+
enabled_events=['*'],
30+
url='https://stripe.com'
31+
)
32+
request_mock.assert_requested(
33+
'post',
34+
'/v1/webhook_endpoints'
35+
)
36+
assert isinstance(resource, stripe.WebhookEndpoint)
37+
38+
def test_is_saveable(self, request_mock):
39+
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
40+
resource.enabled_events = ['*']
41+
resource.save()
42+
request_mock.assert_requested(
43+
'post',
44+
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
45+
)
46+
47+
def test_is_modifiable(self, request_mock):
48+
resource = stripe.WebhookEndpoint.modify(
49+
TEST_RESOURCE_ID,
50+
enabled_events=['*']
51+
)
52+
request_mock.assert_requested(
53+
'post',
54+
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
55+
)
56+
assert isinstance(resource, stripe.WebhookEndpoint)
57+
58+
def test_is_deletable(self, request_mock):
59+
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
60+
resource.delete()
61+
request_mock.assert_requested(
62+
'delete',
63+
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
64+
)
65+
assert resource.deleted is True

0 commit comments

Comments
 (0)