Skip to content

Commit

Permalink
Add support for the Webhook Endpoint resource
Browse files Browse the repository at this point in the history
  • Loading branch information
remi-stripe committed Oct 17, 2018
1 parent a9a8d75 commit fa20a06
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 0 deletions.
1 change: 1 addition & 0 deletions stripe/api_resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@
from stripe.api_resources.transfer import Transfer
from stripe.api_resources.usage_record import UsageRecord
from stripe.api_resources.usage_record_summary import UsageRecordSummary
from stripe.api_resources.webhook_endpoint import WebhookEndpoint
11 changes: 11 additions & 0 deletions stripe/api_resources/webhook_endpoint.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from __future__ import absolute_import, division, print_function

from stripe.api_resources.abstract import CreateableAPIResource
from stripe.api_resources.abstract import DeletableAPIResource
from stripe.api_resources.abstract import UpdateableAPIResource
from stripe.api_resources.abstract import ListableAPIResource


class WebhookEndpoint(CreateableAPIResource, UpdateableAPIResource,
DeletableAPIResource, ListableAPIResource):
OBJECT_NAME = 'webhook_endpoint'
1 change: 1 addition & 0 deletions stripe/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ def load_object_classes():
api_resources.UsageRecord.OBJECT_NAME: api_resources.UsageRecord,
api_resources.UsageRecordSummary.OBJECT_NAME:
api_resources.UsageRecordSummary,
api_resources.WebhookEndpoint.OBJECT_NAME: api_resources.WebhookEndpoint,
api_resources.terminal.Location.OBJECT_NAME:
api_resources.terminal.Location,
api_resources.terminal.ConnectionToken.OBJECT_NAME:
Expand Down
65 changes: 65 additions & 0 deletions tests/api_resources/test_webhook_endpoint.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
from __future__ import absolute_import, division, print_function

import stripe


TEST_RESOURCE_ID = 'we_123'


class TestWebhookEndpoint(object):
def test_is_listable(self, request_mock):
resources = stripe.WebhookEndpoint.list()
request_mock.assert_requested(
'get',
'/v1/webhook_endpoints'
)
assert isinstance(resources.data, list)
assert isinstance(resources.data[0], stripe.WebhookEndpoint)

def test_is_retrievable(self, request_mock):
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
request_mock.assert_requested(
'get',
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
)
assert isinstance(resource, stripe.WebhookEndpoint)

def test_is_creatable(self, request_mock):
resource = stripe.WebhookEndpoint.create(
enabled_events=['*'],
url='https://stripe.com'
)
request_mock.assert_requested(
'post',
'/v1/webhook_endpoints'
)
assert isinstance(resource, stripe.WebhookEndpoint)

def test_is_saveable(self, request_mock):
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
resource.enabled_events = ['*']
resource.save()
request_mock.assert_requested(
'post',
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
)

def test_is_modifiable(self, request_mock):
resource = stripe.WebhookEndpoint.modify(
TEST_RESOURCE_ID,
enabled_events=['*']
)
request_mock.assert_requested(
'post',
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
)
assert isinstance(resource, stripe.WebhookEndpoint)

def test_is_deletable(self, request_mock):
resource = stripe.WebhookEndpoint.retrieve(TEST_RESOURCE_ID)
resource.delete()
request_mock.assert_requested(
'delete',
'/v1/webhook_endpoints/%s' % TEST_RESOURCE_ID
)
assert resource.deleted is True

0 comments on commit fa20a06

Please sign in to comment.