Skip to content

Commit d4f31e0

Browse files
committed
Add support for the Webhook Endpoint resource
1 parent 70ec29a commit d4f31e0

File tree

4 files changed

+79
-0
lines changed

4 files changed

+79
-0
lines changed

stripe/api_resources/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,4 @@
5353
from stripe.api_resources.transfer import Transfer
5454
from stripe.api_resources.usage_record import UsageRecord
5555
from stripe.api_resources.usage_record_summary import UsageRecordSummary
56+
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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@ def load_object_classes():
215215
api_resources.UsageRecord.OBJECT_NAME: api_resources.UsageRecord,
216216
api_resources.UsageRecordSummary.OBJECT_NAME:
217217
api_resources.UsageRecordSummary,
218+
api_resources.WebhookEndpoint.OBJECT_NAME:
219+
api_resources.WebhookEndpoint,
218220
api_resources.terminal.Location.OBJECT_NAME:
219221
api_resources.terminal.Location,
220222
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=['charge.succeeded'],
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 = ['charge.succeeded']
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=['charge.succeeded']
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)