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

87 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 api_requestor 

5from stripe import util 

6from stripe.api_resources.abstract import APIResourceTestHelpers 

7from stripe.api_resources.abstract import CreateableAPIResource 

8from stripe.api_resources.abstract import DeletableAPIResource 

9from stripe.api_resources.abstract import ListableAPIResource 

10from stripe.api_resources.abstract import SearchableAPIResource 

11from stripe.api_resources.abstract import UpdateableAPIResource 

12from stripe.api_resources.abstract import custom_method 

13from stripe.api_resources.abstract import nested_resource_class_methods 

14from stripe.api_resources.abstract import test_helpers 

15 

16 

17@custom_method("delete_discount", http_verb="delete", http_path="discount") 

18@test_helpers 

19@custom_method( 

20 "create_funding_instructions", 

21 http_verb="post", 

22 http_path="funding_instructions", 

23) 

24@custom_method( 

25 "list_payment_methods", 

26 http_verb="get", 

27 http_path="payment_methods", 

28) 

29@nested_resource_class_methods( 

30 "balance_transaction", 

31 operations=["create", "retrieve", "update", "list"], 

32) 

33@nested_resource_class_methods( 

34 "source", 

35 operations=["create", "retrieve", "update", "delete", "list"], 

36) 

37@nested_resource_class_methods( 

38 "tax_id", 

39 operations=["create", "retrieve", "delete", "list"], 

40) 

41class Customer( 

42 CreateableAPIResource, 

43 DeletableAPIResource, 

44 ListableAPIResource, 

45 SearchableAPIResource, 

46 UpdateableAPIResource, 

47): 

48 OBJECT_NAME = "customer" 

49 

50 def create_funding_instructions(self, idempotency_key=None, **params): 

51 url = "/v1/customers/{customer}/funding_instructions".format( 

52 customer=util.sanitize_id(self.get("id")) 

53 ) 

54 headers = util.populate_headers(idempotency_key) 

55 resp = self.request("post", url, params, headers) 

56 stripe_object = util.convert_to_stripe_object(resp) 

57 return stripe_object 

58 

59 def list_payment_methods(self, idempotency_key=None, **params): 

60 url = "/v1/customers/{customer}/payment_methods".format( 

61 customer=util.sanitize_id(self.get("id")) 

62 ) 

63 headers = util.populate_headers(idempotency_key) 

64 resp = self.request("get", url, params, headers) 

65 stripe_object = util.convert_to_stripe_object(resp) 

66 stripe_object._retrieve_params = params 

67 return stripe_object 

68 

69 @classmethod 

70 def _cls_retrieve_payment_method( 

71 cls, 

72 customer, 

73 payment_method, 

74 api_key=None, 

75 stripe_version=None, 

76 stripe_account=None, 

77 **params 

78 ): 

79 requestor = api_requestor.APIRequestor( 

80 api_key, api_version=stripe_version, account=stripe_account 

81 ) 

82 url = ( 

83 "/v1/customers/{customer}/payment_methods/{payment_method}".format( 

84 customer=util.sanitize_id(customer), 

85 payment_method=util.sanitize_id(payment_method), 

86 ) 

87 ) 

88 response, api_key = requestor.request("get", url, params) 

89 stripe_object = util.convert_to_stripe_object( 

90 response, api_key, stripe_version, stripe_account 

91 ) 

92 return stripe_object 

93 

94 @util.class_method_variant("_cls_retrieve_payment_method") 

95 def retrieve_payment_method( 

96 self, payment_method, idempotency_key=None, **params 

97 ): 

98 url = ( 

99 "/v1/customers/{customer}/payment_methods/{payment_method}".format( 

100 customer=util.sanitize_id(self.get("id")), 

101 payment_method=util.sanitize_id(payment_method), 

102 ) 

103 ) 

104 headers = util.populate_headers(idempotency_key) 

105 resp = self.request("get", url, params, headers) 

106 stripe_object = util.convert_to_stripe_object(resp) 

107 return stripe_object 

108 

109 @classmethod 

110 def search(cls, *args, **kwargs): 

111 return cls._search(search_url="/v1/customers/search", *args, **kwargs) 

112 

113 @classmethod 

114 def search_auto_paging_iter(cls, *args, **kwargs): 

115 return cls.search(*args, **kwargs).auto_paging_iter() 

116 

117 def delete_discount(self, **params): 

118 requestor = api_requestor.APIRequestor( 

119 self.api_key, 

120 api_version=self.stripe_version, 

121 account=self.stripe_account, 

122 ) 

123 url = self.instance_url() + "/discount" 

124 _, api_key = requestor.request("delete", url, params) 

125 self.refresh_from({"discount": None}, api_key, True) 

126 

127 @classmethod 

128 def retrieve_cash_balance( 

129 cls, 

130 customer, 

131 nested_id=None, 

132 api_key=None, 

133 stripe_version=None, 

134 stripe_account=None, 

135 **params 

136 ): 

137 # The nested_id parameter is required for backwards compatibility purposes and is ignored. 

138 requestor = api_requestor.APIRequestor( 

139 api_key, api_version=stripe_version, account=stripe_account 

140 ) 

141 url = "/v1/customers/{customer}/cash_balance".format( 

142 customer=util.sanitize_id(customer) 

143 ) 

144 response, api_key = requestor.request("get", url, params) 

145 stripe_object = util.convert_to_stripe_object( 

146 response, api_key, stripe_version, stripe_account 

147 ) 

148 return stripe_object 

149 

150 @classmethod 

151 def modify_cash_balance( 

152 cls, 

153 customer, 

154 nested_id=None, 

155 api_key=None, 

156 stripe_version=None, 

157 stripe_account=None, 

158 **params 

159 ): 

160 # The nested_id parameter is required for backwards compatibility purposes and is ignored. 

161 requestor = api_requestor.APIRequestor( 

162 api_key, api_version=stripe_version, account=stripe_account 

163 ) 

164 url = "/v1/customers/{customer}/cash_balance".format( 

165 customer=util.sanitize_id(customer) 

166 ) 

167 response, api_key = requestor.request("post", url, params) 

168 stripe_object = util.convert_to_stripe_object( 

169 response, api_key, stripe_version, stripe_account 

170 ) 

171 return stripe_object 

172 

173 class TestHelpers(APIResourceTestHelpers): 

174 @classmethod 

175 def _cls_fund_cash_balance( 

176 cls, 

177 customer, 

178 api_key=None, 

179 stripe_version=None, 

180 stripe_account=None, 

181 **params 

182 ): 

183 requestor = api_requestor.APIRequestor( 

184 api_key, api_version=stripe_version, account=stripe_account 

185 ) 

186 url = "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( 

187 customer=util.sanitize_id(customer) 

188 ) 

189 response, api_key = requestor.request("post", url, params) 

190 stripe_object = util.convert_to_stripe_object( 

191 response, api_key, stripe_version, stripe_account 

192 ) 

193 return stripe_object 

194 

195 @util.class_method_variant("_cls_fund_cash_balance") 

196 def fund_cash_balance(self, idempotency_key=None, **params): 

197 url = "/v1/test_helpers/customers/{customer}/fund_cash_balance".format( 

198 customer=util.sanitize_id(self.get("id")) 

199 ) 

200 headers = util.populate_headers(idempotency_key) 

201 self.resource.refresh_from( 

202 self.resource.request("post", url, params, headers) 

203 ) 

204 return self.resource