Skip to content

Commit

Permalink
Merge pull request #554 from stripe/remi-add-tax-rates
Browse files Browse the repository at this point in the history
Add support for TaxRate resource and APIs
  • Loading branch information
remi-stripe committed Apr 24, 2019
2 parents 37e9220 + 27735f2 commit 353b816
Show file tree
Hide file tree
Showing 4 changed files with 58 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 @@ -56,6 +56,7 @@
SubscriptionScheduleRevision,
)
from stripe.api_resources.tax_id import TaxId
from stripe.api_resources.tax_rate import TaxRate
from stripe.api_resources.three_d_secure import ThreeDSecure
from stripe.api_resources.token import Token
from stripe.api_resources.topup import Topup
Expand Down
11 changes: 11 additions & 0 deletions stripe/api_resources/tax_rate.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 UpdateableAPIResource
from stripe.api_resources.abstract import ListableAPIResource


class TaxRate(
CreateableAPIResource, UpdateableAPIResource, ListableAPIResource
):
OBJECT_NAME = "tax_rate"
1 change: 1 addition & 0 deletions stripe/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ def load_object_classes():
api_resources.SubscriptionSchedule.OBJECT_NAME: api_resources.SubscriptionSchedule,
api_resources.SubscriptionScheduleRevision.OBJECT_NAME: api_resources.SubscriptionScheduleRevision,
api_resources.TaxId.OBJECT_NAME: api_resources.TaxId,
api_resources.TaxRate.OBJECT_NAME: api_resources.TaxRate,
api_resources.ThreeDSecure.OBJECT_NAME: api_resources.ThreeDSecure,
api_resources.Token.OBJECT_NAME: api_resources.Token,
api_resources.Topup.OBJECT_NAME: api_resources.Topup,
Expand Down
45 changes: 45 additions & 0 deletions tests/api_resources/test_tax_rate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from __future__ import absolute_import, division, print_function

import stripe


TEST_RESOURCE_ID = "txr_123"


class TestTaxRate(object):
def test_is_listable(self, request_mock):
resources = stripe.TaxRate.list()
request_mock.assert_requested("get", "/v1/tax_rates")
assert isinstance(resources.data, list)
assert isinstance(resources.data[0], stripe.TaxRate)

def test_is_retrievable(self, request_mock):
resource = stripe.TaxRate.retrieve(TEST_RESOURCE_ID)
request_mock.assert_requested(
"get", "/v1/tax_rates/%s" % TEST_RESOURCE_ID
)
assert isinstance(resource, stripe.TaxRate)

def test_is_creatable(self, request_mock):
resource = stripe.TaxRate.create(
display_name="name", inclusive=False, percentage=10.15
)
request_mock.assert_requested("post", "/v1/tax_rates")
assert isinstance(resource, stripe.TaxRate)

def test_is_saveable(self, request_mock):
resource = stripe.TaxRate.retrieve(TEST_RESOURCE_ID)
resource.metadata["key"] = "value"
resource.save()
request_mock.assert_requested(
"post", "/v1/tax_rates/%s" % TEST_RESOURCE_ID
)

def test_is_modifiable(self, request_mock):
resource = stripe.TaxRate.modify(
TEST_RESOURCE_ID, metadata={"key": "value"}
)
request_mock.assert_requested(
"post", "/v1/tax_rates/%s" % TEST_RESOURCE_ID
)
assert isinstance(resource, stripe.TaxRate)

0 comments on commit 353b816

Please sign in to comment.