diff --git a/stripe/api_resources/source.py b/stripe/api_resources/source.py index 2c2278dec..db910d796 100644 --- a/stripe/api_resources/source.py +++ b/stripe/api_resources/source.py @@ -6,9 +6,11 @@ from stripe.api_resources.abstract import CreateableAPIResource from stripe.api_resources.abstract import UpdateableAPIResource from stripe.api_resources.abstract import VerifyMixin +from stripe.api_resources.abstract import nested_resource_class_methods from stripe.six.moves.urllib.parse import quote_plus +@nested_resource_class_methods("source_transaction", operations=["list"]) class Source(CreateableAPIResource, UpdateableAPIResource, VerifyMixin): OBJECT_NAME = "source" @@ -34,6 +36,8 @@ def detach(self, idempotency_key=None, **params): ) def source_transactions(self, **params): + """source_transactions is deprecated, use Source.list_source_transactions instead. + """ return self.request( "get", self.instance_url() + "/source_transactions", params ) diff --git a/stripe/api_resources/subscription_item.py b/stripe/api_resources/subscription_item.py index 7db5dd07d..748d39c13 100644 --- a/stripe/api_resources/subscription_item.py +++ b/stripe/api_resources/subscription_item.py @@ -8,6 +8,11 @@ @nested_resource_class_methods("usage_record", operations=["create"]) +@nested_resource_class_methods( + "usage_record_summary", + operations=["list"], + resource_plural="usage_record_summaries", +) class SubscriptionItem( CreateableAPIResource, DeletableAPIResource, @@ -17,6 +22,8 @@ class SubscriptionItem( OBJECT_NAME = "subscription_item" def usage_record_summaries(self, **params): + """usage_record_summaries is deprecated, use SubscriptionItem.list_usage_record_summaries instead. + """ return self.request( "get", self.instance_url() + "/usage_record_summaries", params ) diff --git a/tests/api_resources/test_source.py b/tests/api_resources/test_source.py index 6499a94d6..dc6bd9f75 100644 --- a/tests/api_resources/test_source.py +++ b/tests/api_resources/test_source.py @@ -67,3 +67,13 @@ def test_is_verifiable(self, request_mock): "/v1/sources/%s/verify" % TEST_RESOURCE_ID, {"values": [1, 2]}, ) + + +class TestSourceTransactions(object): + def test_is_listable(self, request_mock): + resource = stripe.Source.list_source_transactions(TEST_RESOURCE_ID) + request_mock.assert_requested( + "get", "/v1/sources/%s/source_transactions" % TEST_RESOURCE_ID + ) + assert isinstance(resource.data, list) + assert isinstance(resource.data[0], stripe.SourceTransaction) diff --git a/tests/api_resources/test_subscription_item.py b/tests/api_resources/test_subscription_item.py index 20d504a01..f74d71f1c 100644 --- a/tests/api_resources/test_subscription_item.py +++ b/tests/api_resources/test_subscription_item.py @@ -79,3 +79,17 @@ def test_is_creatable(self, request_mock): "/v1/subscription_items/%s/usage_records" % TEST_RESOURCE_ID, ) assert isinstance(resource, stripe.UsageRecord) + + +class TestUsageRecordSummaries(object): + def test_is_listable(self, request_mock): + resource = stripe.SubscriptionItem.list_usage_record_summaries( + TEST_RESOURCE_ID + ) + request_mock.assert_requested( + "get", + "/v1/subscription_items/%s/usage_record_summaries" + % TEST_RESOURCE_ID, + ) + assert isinstance(resource.data, list) + assert isinstance(resource.data[0], stripe.UsageRecordSummary)