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

37 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.abstract import DeletableAPIResource 

7from stripe.api_resources.abstract import UpdateableAPIResource 

8from stripe.api_resources.account import Account 

9from stripe.api_resources.customer import Customer 

10from stripe.api_resources.recipient import Recipient 

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

12 

13 

14class Card(DeletableAPIResource, UpdateableAPIResource): 

15 OBJECT_NAME = "card" 

16 

17 def instance_url(self): 

18 token = util.utf8(self.id) 

19 extn = quote_plus(token) 

20 if hasattr(self, "customer"): 

21 customer = util.utf8(self.customer) 

22 

23 base = Customer.class_url() 

24 owner_extn = quote_plus(customer) 

25 class_base = "sources" 

26 

27 elif hasattr(self, "recipient"): 

28 recipient = util.utf8(self.recipient) 

29 

30 base = Recipient.class_url() 

31 owner_extn = quote_plus(recipient) 

32 class_base = "cards" 

33 

34 elif hasattr(self, "account"): 

35 account = util.utf8(self.account) 

36 

37 base = Account.class_url() 

38 owner_extn = quote_plus(account) 

39 class_base = "external_accounts" 

40 

41 else: 

42 raise error.InvalidRequestError( 

43 "Could not determine whether card_id %s is " 

44 "attached to a customer, recipient, or " 

45 "account." % token, 

46 "id", 

47 ) 

48 

49 return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn) 

50 

51 @classmethod 

52 def modify(cls, sid, **params): 

53 raise NotImplementedError( 

54 "Can't modify a card without a customer, recipient or account " 

55 "ID. Call save on customer.sources.retrieve('card_id'), " 

56 "recipient.cards.retrieve('card_id'), or " 

57 "account.external_accounts.retrieve('card_id') instead." 

58 ) 

59 

60 @classmethod 

61 def retrieve( 

62 cls, 

63 id, 

64 api_key=None, 

65 stripe_version=None, 

66 stripe_account=None, 

67 **params 

68 ): 

69 raise NotImplementedError( 

70 "Can't retrieve a card without a customer, recipient or account " 

71 "ID. Use customer.sources.retrieve('card_id'), " 

72 "recipient.cards.retrieve('card_id'), or " 

73 "account.external_accounts.retrieve('card_id') instead." 

74 )