diff --git a/stripe/api_resources/__init__.py b/stripe/api_resources/__init__.py index e93eed061..0de072f83 100644 --- a/stripe/api_resources/__init__.py +++ b/stripe/api_resources/__init__.py @@ -57,7 +57,6 @@ from stripe.api_resources.login_link import LoginLink from stripe.api_resources.mandate import Mandate from stripe.api_resources.order import Order -from stripe.api_resources.order_return import OrderReturn from stripe.api_resources.payment_intent import PaymentIntent from stripe.api_resources.payment_link import PaymentLink from stripe.api_resources.payment_method import PaymentMethod diff --git a/stripe/api_resources/financial_connections/account.py b/stripe/api_resources/financial_connections/account.py index cf81a1993..e897c50e6 100644 --- a/stripe/api_resources/financial_connections/account.py +++ b/stripe/api_resources/financial_connections/account.py @@ -7,7 +7,7 @@ @custom_method("disconnect", http_verb="post") -@custom_method("refresh", http_verb="post") +@custom_method("refresh_account", http_verb="post", http_path="refresh") class Account(APIResource): OBJECT_NAME = "financial_connections.account" @@ -17,7 +17,7 @@ def disconnect(self, idempotency_key=None, **params): self.refresh_from(self.request("post", url, params, headers)) return self - def refresh(self, idempotency_key=None, **params): + def refresh_account(self, idempotency_key=None, **params): url = self.instance_url() + "/refresh" headers = util.populate_headers(idempotency_key) self.refresh_from(self.request("post", url, params, headers)) diff --git a/stripe/api_resources/order.py b/stripe/api_resources/order.py index 7d7e6b89d..8f0ca1757 100644 --- a/stripe/api_resources/order.py +++ b/stripe/api_resources/order.py @@ -8,19 +8,35 @@ from stripe.api_resources.abstract import custom_method -@custom_method("return_order", http_verb="post", http_path="returns") -@custom_method("pay", http_verb="post") +@custom_method("cancel", http_verb="post") +@custom_method("list_line_items", http_verb="get", http_path="line_items") +@custom_method("reopen", http_verb="post") +@custom_method("submit", http_verb="post") class Order(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource): OBJECT_NAME = "order" - def pay(self, idempotency_key=None, **params): - url = self.instance_url() + "/pay" + def cancel(self, idempotency_key=None, **params): + url = self.instance_url() + "/cancel" headers = util.populate_headers(idempotency_key) self.refresh_from(self.request("post", url, params, headers)) return self - def return_order(self, idempotency_key=None, **params): + def list_line_items(self, idempotency_key=None, **params): + url = self.instance_url() + "/line_items" headers = util.populate_headers(idempotency_key) - return self.request( - "post", self.instance_url() + "/returns", params, headers - ) + resp = self.request("get", url, params, headers) + stripe_object = util.convert_to_stripe_object(resp) + stripe_object._retrieve_params = params + return stripe_object + + def reopen(self, idempotency_key=None, **params): + url = self.instance_url() + "/reopen" + headers = util.populate_headers(idempotency_key) + self.refresh_from(self.request("post", url, params, headers)) + return self + + def submit(self, idempotency_key=None, **params): + url = self.instance_url() + "/submit" + headers = util.populate_headers(idempotency_key) + self.refresh_from(self.request("post", url, params, headers)) + return self diff --git a/stripe/api_resources/order_return.py b/stripe/api_resources/order_return.py deleted file mode 100644 index ecaa170f0..000000000 --- a/stripe/api_resources/order_return.py +++ /dev/null @@ -1,8 +0,0 @@ -# File generated from our OpenAPI spec -from __future__ import absolute_import, division, print_function - -from stripe.api_resources.abstract import ListableAPIResource - - -class OrderReturn(ListableAPIResource): - OBJECT_NAME = "order_return" diff --git a/stripe/object_classes.py b/stripe/object_classes.py index 71bdb52a1..9b562de47 100644 --- a/stripe/object_classes.py +++ b/stripe/object_classes.py @@ -61,7 +61,6 @@ api_resources.LoginLink.OBJECT_NAME: api_resources.LoginLink, api_resources.Mandate.OBJECT_NAME: api_resources.Mandate, api_resources.Order.OBJECT_NAME: api_resources.Order, - api_resources.OrderReturn.OBJECT_NAME: api_resources.OrderReturn, api_resources.PaymentIntent.OBJECT_NAME: api_resources.PaymentIntent, api_resources.PaymentLink.OBJECT_NAME: api_resources.PaymentLink, api_resources.PaymentMethod.OBJECT_NAME: api_resources.PaymentMethod, diff --git a/tests/api_resources/test_order.py b/tests/api_resources/test_order.py deleted file mode 100644 index 4f3686567..000000000 --- a/tests/api_resources/test_order.py +++ /dev/null @@ -1,78 +0,0 @@ -from __future__ import absolute_import, division, print_function - -import stripe - - -TEST_RESOURCE_ID = "or_123" - - -class TestOrder(object): - def test_is_listable(self, request_mock): - resources = stripe.Order.list() - request_mock.assert_requested("get", "/v1/orders") - assert isinstance(resources.data, list) - assert isinstance(resources.data[0], stripe.Order) - - def test_is_retrievable(self, request_mock): - resource = stripe.Order.retrieve(TEST_RESOURCE_ID) - request_mock.assert_requested( - "get", "/v1/orders/%s" % TEST_RESOURCE_ID - ) - assert isinstance(resource, stripe.Order) - - def test_is_creatable(self, request_mock): - resource = stripe.Order.create(currency="usd") - request_mock.assert_requested("post", "/v1/orders") - assert isinstance(resource, stripe.Order) - - def test_is_saveable(self, request_mock): - resource = stripe.Order.retrieve(TEST_RESOURCE_ID) - resource.metadata["key"] = "value" - resource.save() - request_mock.assert_requested( - "post", "/v1/orders/%s" % TEST_RESOURCE_ID - ) - - def test_is_modifiable(self, request_mock): - resource = stripe.Order.modify( - TEST_RESOURCE_ID, metadata={"key": "value"} - ) - request_mock.assert_requested( - "post", "/v1/orders/%s" % TEST_RESOURCE_ID - ) - assert isinstance(resource, stripe.Order) - - def test_can_pay(self, request_mock): - order = stripe.Order.retrieve(TEST_RESOURCE_ID) - resource = order.pay(source="src_123") - request_mock.assert_requested( - "post", - "/v1/orders/%s/pay" % TEST_RESOURCE_ID, - {"source": "src_123"}, - ) - assert isinstance(resource, stripe.Order) - assert resource is order - - def test_can_pay_classmethod(self, request_mock): - resource = stripe.Order.pay(TEST_RESOURCE_ID, source="src_123") - request_mock.assert_requested( - "post", - "/v1/orders/%s/pay" % TEST_RESOURCE_ID, - {"source": "src_123"}, - ) - assert isinstance(resource, stripe.Order) - - def test_can_return(self, request_mock): - order = stripe.Order.retrieve(TEST_RESOURCE_ID) - resource = order.return_order() - request_mock.assert_requested( - "post", "/v1/orders/%s/returns" % TEST_RESOURCE_ID - ) - assert isinstance(resource, stripe.OrderReturn) - - def test_can_return_classmethod(self, request_mock): - resource = stripe.Order.return_order(TEST_RESOURCE_ID) - request_mock.assert_requested( - "post", "/v1/orders/%s/returns" % TEST_RESOURCE_ID - ) - assert isinstance(resource, stripe.OrderReturn) diff --git a/tests/api_resources/test_order_return.py b/tests/api_resources/test_order_return.py deleted file mode 100644 index 3ce0f8d18..000000000 --- a/tests/api_resources/test_order_return.py +++ /dev/null @@ -1,21 +0,0 @@ -from __future__ import absolute_import, division, print_function - -import stripe - - -TEST_RESOURCE_ID = "orret_123" - - -class TestOrderReturn(object): - def test_is_listable(self, request_mock): - resources = stripe.OrderReturn.list() - request_mock.assert_requested("get", "/v1/order_returns") - assert isinstance(resources.data, list) - assert isinstance(resources.data[0], stripe.OrderReturn) - - def test_is_retrievable(self, request_mock): - resource = stripe.OrderReturn.retrieve(TEST_RESOURCE_ID) - request_mock.assert_requested( - "get", "/v1/order_returns/%s" % TEST_RESOURCE_ID - ) - assert isinstance(resource, stripe.OrderReturn) diff --git a/tests/test_generated_examples.py b/tests/test_generated_examples.py index b27867328..ba8a28275 100644 --- a/tests/test_generated_examples.py +++ b/tests/test_generated_examples.py @@ -1402,53 +1402,6 @@ def test_terminal_reader_list(self, request_mock): stripe.terminal.Reader.list(limit=3) request_mock.assert_requested("get", "/v1/terminal/readers") - def test_order_create(self, request_mock): - stripe.Order.create( - currency="usd", - email="jenny.rosen@example.com", - items=[{"type": "sku", "parent": "sku_xxxxxxxxxxxxx"}], - shipping={ - "name": "Jenny Rosen", - "address": { - "line1": "1234 Main Street", - "city": "San Francisco", - "state": "CA", - "country": "US", - "postal_code": "94111", - }, - }, - ) - request_mock.assert_requested("post", "/v1/orders") - - def test_order_retrieve(self, request_mock): - stripe.Order.retrieve("or_xxxxxxxxxxxxx") - request_mock.assert_requested("get", "/v1/orders/or_xxxxxxxxxxxxx") - - def test_order_update(self, request_mock): - stripe.Order.modify("or_xxxxxxxxxxxxx", metadata={"order_id": "6735"}) - request_mock.assert_requested("post", "/v1/orders/or_xxxxxxxxxxxxx") - - def test_order_pay(self, request_mock): - stripe.Order.pay("or_xxxxxxxxxxxxx", source="tok_xxxx") - request_mock.assert_requested( - "post", "/v1/orders/or_xxxxxxxxxxxxx/pay" - ) - - def test_order_list(self, request_mock): - stripe.Order.list(limit=3) - request_mock.assert_requested("get", "/v1/orders") - - def test_orderreturn_retrieve(self, request_mock): - stripe.OrderReturn.retrieve("orret_xxxxxxxxxxxxx") - request_mock.assert_requested( - "get", - "/v1/order_returns/orret_xxxxxxxxxxxxx", - ) - - def test_orderreturn_list(self, request_mock): - stripe.OrderReturn.list(limit=3) - request_mock.assert_requested("get", "/v1/order_returns") - def test_sku_create(self, request_mock): stripe.SKU.create( attributes={"size": "Medium", "gender": "Unisex"}, @@ -1717,3 +1670,75 @@ def test_refund_expire(self, request_mock): "post", "/v1/test_helpers/refunds/re_123/expire", ) + + def test_order_create(self, request_mock): + stripe.Order.create( + description="description", + currency="usd", + line_items=[{"description": "my line item"}], + ) + request_mock.assert_requested("post", "/v1/orders") + + def test_order_update(self, request_mock): + stripe.Order.modify("order_xyz") + request_mock.assert_requested("post", "/v1/orders/order_xyz") + + def test_order_list_line_items(self, request_mock): + stripe.Order.list_line_items("order_xyz") + request_mock.assert_requested("get", "/v1/orders/order_xyz/line_items") + + def test_order_cancel(self, request_mock): + stripe.Order.cancel("order_xyz") + request_mock.assert_requested("post", "/v1/orders/order_xyz/cancel") + + def test_order_reopen(self, request_mock): + stripe.Order.reopen("order_xyz") + request_mock.assert_requested("post", "/v1/orders/order_xyz/reopen") + + def test_order_submit(self, request_mock): + stripe.Order.submit("order_xyz", expected_total=100) + request_mock.assert_requested("post", "/v1/orders/order_xyz/submit") + + def test_order_update2(self, request_mock): + stripe.Order.modify("order_xyz") + request_mock.assert_requested("post", "/v1/orders/order_xyz") + + def test_financial_connections_account_retrieve(self, request_mock): + stripe.financial_connections.Account.retrieve("fca_xyz") + request_mock.assert_requested( + "get", + "/v1/financial_connections/accounts/fca_xyz", + ) + + def test_financial_connections_account_refresh_account(self, request_mock): + stripe.financial_connections.Account.refresh_account( + "fca_xyz", + features=["balance"], + ) + request_mock.assert_requested( + "post", + "/v1/financial_connections/accounts/fca_xyz/refresh", + ) + + def test_financial_connections_account_disconnect(self, request_mock): + stripe.financial_connections.Account.disconnect("fca_xyz") + request_mock.assert_requested( + "post", + "/v1/financial_connections/accounts/fca_xyz/disconnect", + ) + + def test_financial_connections_session_create(self, request_mock): + stripe.financial_connections.Session.create( + account_holder={"type": "customer", "customer": "cus_123"}, + permissions=["balances"], + ) + request_mock.assert_requested( + "post", "/v1/financial_connections/sessions" + ) + + def test_financial_connections_session_retrieve(self, request_mock): + stripe.financial_connections.Session.retrieve("fcsess_xyz") + request_mock.assert_requested( + "get", + "/v1/financial_connections/sessions/fcsess_xyz", + )