Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/stripe/api_resources/source.py: 53%

26 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1# File generated from our OpenAPI spec 

2from __future__ import absolute_import, division, print_function 

3 

4from stripe import error 

5from stripe import util 

6from stripe.api_resources import Customer 

7from stripe.api_resources.abstract import CreateableAPIResource 

8from stripe.api_resources.abstract import UpdateableAPIResource 

9from stripe.api_resources.abstract import VerifyMixin 

10from stripe.api_resources.abstract import nested_resource_class_methods 

11from stripe.six.moves.urllib.parse import quote_plus 

12 

13 

14@nested_resource_class_methods("source_transaction", operations=["list"]) 

15class Source(CreateableAPIResource, UpdateableAPIResource, VerifyMixin): 

16 OBJECT_NAME = "source" 

17 

18 def detach(self, idempotency_key=None, **params): 

19 token = util.utf8(self.id) 

20 

21 if hasattr(self, "customer") and self.customer: 

22 extn = quote_plus(token) 

23 customer = util.utf8(self.customer) 

24 base = Customer.class_url() 

25 owner_extn = quote_plus(customer) 

26 url = "%s/%s/sources/%s" % (base, owner_extn, extn) 

27 headers = util.populate_headers(idempotency_key) 

28 

29 self.refresh_from(self.request("delete", url, params, headers)) 

30 return self 

31 

32 else: 

33 raise error.InvalidRequestError( 

34 "Source %s does not appear to be currently attached " 

35 "to a customer object." % token, 

36 "id", 

37 ) 

38 

39 def source_transactions(self, **params): 

40 """source_transactions is deprecated, use Source.list_source_transactions instead.""" 

41 return self.request( 

42 "get", self.instance_url() + "/source_transactions", params 

43 )