Skip to content

Commit 043998f

Browse files
add Create Payment Status Transition
1 parent 6a227ab commit 043998f

3 files changed

Lines changed: 54 additions & 149 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ htmlcov
1717
# Other
1818
.DS_Store
1919
.coverage
20+
.idea/

hyperwallet/api.py

Lines changed: 31 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -155,96 +155,6 @@ def listUsers(self,
155155

156156
return [User(x) for x in response.get('data', [])]
157157

158-
def createUserStatusTransition(self,
159-
userToken=None,
160-
data=None):
161-
'''
162-
Create a User Status Transition.
163-
164-
:param userToken:
165-
A token identifying the User. **REQUIRED**
166-
:param data:
167-
A dictionary containing User Status Transition information. **REQUIRED**
168-
:returns:
169-
A User Status Transition.
170-
'''
171-
172-
if not userToken:
173-
raise HyperwalletException('userToken is required')
174-
175-
if not data:
176-
raise HyperwalletException('data is required')
177-
178-
response = self.apiClient.doPost(
179-
os.path.join(
180-
'users',
181-
userToken,
182-
'status-transitions'
183-
),
184-
data
185-
)
186-
187-
return StatusTransition(response)
188-
189-
def getUserStatusTransition(self,
190-
userToken=None,
191-
statusTransitionToken=None):
192-
'''
193-
Retrieve a User Status Transition.
194-
195-
:param userToken:
196-
A token identifying the User. **REQUIRED**
197-
:param statusTransitionToken:
198-
A token identifying the User Status Transition. **REQUIRED**
199-
:returns:
200-
A User Status Transition.
201-
'''
202-
203-
if not userToken:
204-
raise HyperwalletException('userToken is required')
205-
206-
if not statusTransitionToken:
207-
raise HyperwalletException('statusTransitionToken is required')
208-
209-
response = self.apiClient.doGet(
210-
os.path.join(
211-
'users',
212-
userToken,
213-
'status-transitions',
214-
statusTransitionToken
215-
)
216-
)
217-
218-
return StatusTransition(response)
219-
220-
def listUserStatusTransitions(self,
221-
userToken=None,
222-
params=None):
223-
'''
224-
List User Status Transitions.
225-
226-
:param userToken:
227-
A token identifying the User. **REQUIRED**
228-
:param params:
229-
A dictionary containing query parameters.
230-
:returns:
231-
An array of User Status Transitions.
232-
'''
233-
234-
if not userToken:
235-
raise HyperwalletException('userToken is required')
236-
237-
response = self.apiClient.doGet(
238-
os.path.join(
239-
'users',
240-
userToken,
241-
'status-transitions'
242-
),
243-
params
244-
)
245-
246-
return [StatusTransition(x) for x in response.get('data', [])]
247-
248158
'''
249159
250160
Bank Accounts
@@ -1560,6 +1470,37 @@ def listPaymentStatusTransitions(self,
15601470

15611471
return [StatusTransition(x) for x in response.get('data', [])]
15621472

1473+
def createPaymentStatusTransition(self,
1474+
paymentToken=None,
1475+
data=None):
1476+
'''
1477+
Create Payment Status Transition.
1478+
1479+
:param paymentToken:
1480+
A token identifying the Payment. **REQUIRED**
1481+
:param data:
1482+
A dictionary containing User Status Transition information. **REQUIRED**
1483+
:returns:
1484+
A Payment Status Transition.
1485+
'''
1486+
1487+
if not paymentToken:
1488+
raise HyperwalletException('paymentToken is required')
1489+
1490+
if not data:
1491+
raise HyperwalletException('data is required')
1492+
1493+
response = self.apiClient.doPost(
1494+
os.path.join(
1495+
'payments',
1496+
paymentToken,
1497+
'status-transitions'
1498+
),
1499+
data
1500+
)
1501+
1502+
return StatusTransition(response)
1503+
15631504
'''
15641505
15651506
Balances

hyperwallet/tests/test_api.py

Lines changed: 22 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -131,65 +131,6 @@ def test_list_users_success(self, mock_get):
131131

132132
self.assertEqual(response[0].token, self.data.get('token'))
133133

134-
def test_create_user_status_transition_fail_need_user_token(self):
135-
136-
with self.assertRaises(HyperwalletException) as exc:
137-
self.api.createUserStatusTransition()
138-
139-
self.assertEqual(exc.exception.message, 'userToken is required')
140-
141-
def test_create_user_status_transition_fail_need_data(self):
142-
143-
with self.assertRaises(HyperwalletException) as exc:
144-
self.api.createUserStatusTransition('token')
145-
146-
self.assertEqual(exc.exception.message, 'data is required')
147-
148-
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
149-
def test_create_user_status_transition_success(self, mock_post):
150-
151-
mock_post.return_value = self.data
152-
response = self.api.createUserStatusTransition('token', self.data)
153-
154-
self.assertTrue(response.token, self.data.get('token'))
155-
156-
def test_get_user_status_transition_fail_need_user_token(self):
157-
158-
with self.assertRaises(HyperwalletException) as exc:
159-
self.api.getUserStatusTransition()
160-
161-
self.assertEqual(exc.exception.message, 'userToken is required')
162-
163-
def test_get_user_status_transition_fail_need_transition_token(self):
164-
165-
with self.assertRaises(HyperwalletException) as exc:
166-
self.api.getUserStatusTransition('token')
167-
168-
self.assertEqual(exc.exception.message, 'statusTransitionToken is required')
169-
170-
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
171-
def test_get_user_status_transition_success(self, mock_get):
172-
173-
mock_get.return_value = self.data
174-
response = self.api.getUserStatusTransition('token', 'token')
175-
176-
self.assertTrue(response.token, self.data.get('token'))
177-
178-
def test_list_user_status_transitions_fail_need_user_token(self):
179-
180-
with self.assertRaises(HyperwalletException) as exc:
181-
self.api.listUserStatusTransitions()
182-
183-
self.assertEqual(exc.exception.message, 'userToken is required')
184-
185-
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
186-
def test_list_user_status_transitions_success(self, mock_get):
187-
188-
mock_get.return_value = {'data': [self.data]}
189-
response = self.api.listUserStatusTransitions('token')
190-
191-
self.assertTrue(response[0].token, self.data.get('token'))
192-
193134
'''
194135
195136
Bank Accounts
@@ -1235,6 +1176,28 @@ def test_list_payment_status_transitions_success(self, mock_get):
12351176

12361177
self.assertTrue(response[0].token, self.data.get('token'))
12371178

1179+
def test_create_payment_status_transition_fail_need_payment_token(self):
1180+
1181+
with self.assertRaises(HyperwalletException) as exc:
1182+
self.api.createPaymentStatusTransition()
1183+
1184+
self.assertEqual(exc.exception.message, 'paymentToken is required')
1185+
1186+
def test_create_payment_status_transition_fail_need_data(self):
1187+
1188+
with self.assertRaises(HyperwalletException) as exc:
1189+
self.api.createPaymentStatusTransition('token')
1190+
1191+
self.assertEqual(exc.exception.message, 'data is required')
1192+
1193+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
1194+
def test_create_payment_status_transition_success(self, mock_post):
1195+
1196+
mock_post.return_value = self.data
1197+
response = self.api.createPaymentStatusTransition('token', self.data)
1198+
1199+
self.assertTrue(response.token, self.data.get('token'))
1200+
12381201
'''
12391202
12401203
Balances

0 commit comments

Comments
 (0)