Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

get and list transfer status transition added #41

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions hyperwallet/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2933,3 +2933,75 @@ def lockUser(self,
userToken,
data
)

'''

Get Transfer Status Transition

'''

def getTransferStatusTransition(self,
transferToken=None,
statusTransitionToken=None):
'''
Retrieve a Transfer Status Transition.

:param transferToken:
A token identifying the Transfer. **REQUIRED**
:param statusTransitionToken:
A token identifying the Transfer Status Transition. **REQUIRED**
:returns:
A Transfer Status Transition.
'''

if not transferToken:
raise HyperwalletException('transferToken is required')

if not statusTransitionToken:
raise HyperwalletException('statusTransitionToken is required')

response = self.apiClient.doGet(
self.__buildUrl(
'transfers',
transferToken,
'status-transitions',
statusTransitionToken
)
)

return StatusTransition(response)

'''

List Transfer Status Transition

'''

def listTransferStatusTransitions(self,
transferToken=None,
params=None):
'''
Retrieve a Transfer Status Transition.

:param transferToken:
A token identifying the Transfer. **REQUIRED**
:returns:
A Transfer Status Transition.
'''

if not transferToken:
raise HyperwalletException('transferToken is required')

if params and not StatusTransition.filter_array >= params.keys():
raise HyperwalletException('Invalid filter')

response = self.apiClient.doGet(
self.__buildUrl(
'transfers',
transferToken,
'status-transitions'
),
params
)

return StatusTransition(response)
2 changes: 2 additions & 0 deletions hyperwallet/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,6 +682,8 @@ class StatusTransition(HyperwalletModel):
A dictionary containing the attributes for the Status Transition.
'''

filter_array = {'transition'}

def __init__(self, data):
'''
Create a new Status Transition with the provided attributes.
Expand Down
50 changes: 50 additions & 0 deletions hyperwallet/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2344,6 +2344,56 @@ def test_create_user_activate_status_transition_success(self, mock_get):
response = self.api.activateUser('token')
self.assertTrue(response.token, self.data.get('token'))

'''

Get Transfer Status Transition

'''

def test_get_transfer_status_transition_fail_need_transfer_token(self):

with self.assertRaises(HyperwalletException) as exc:
self.api.getTransferStatusTransition()

self.assertEqual(exc.exception.message, 'transferToken is required')

def test_get_transfer_status_transition_fail_need_transition_token(self):

with self.assertRaises(HyperwalletException) as exc:
self.api.getTransferStatusTransition('token')

self.assertEqual(exc.exception.message, 'statusTransitionToken is required')

@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
def test_get_transfer_status_transition_success(self, mock_get):

mock_get.return_value = self.data
response = self.api.getTransferStatusTransition('token', 'token')

self.assertTrue(response.token, self.data.get('token'))

'''

List Transfer Status Transition

'''

def test_list_transfer_status_transitions_fail_need_transfer_token(self):

with self.assertRaises(HyperwalletException) as exc:
self.api.listTransferStatusTransitions()

self.assertEqual(exc.exception.message, 'transferToken is required')

@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
def test_list_transfer_status_transitions_success(self, mock_get):

options = {'transition': 'SCHEDULED'}
mock_get.return_value = self.data
response = self.api.listTransferStatusTransitions('token', options)

self.assertTrue(response.token, self.data.get('token'))


if __name__ == '__main__':
unittest.main()
2 changes: 1 addition & 1 deletion hyperwallet/tests/test_encryption.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def test_should_fail_decryption_when_wrong_private_key_is_used(self):
with self.assertRaises(HyperwalletException) as exc:
encryption2.decrypt(encryptedMessage)

self.assertTrue(str(exc.exception).startswith('No recipient matched the provided key["Failed: [ValueError(\'Decryption failed.\''))
self.assertTrue(str(exc.exception).startswith('No recipient matched the provided key'))

def test_should_fail_signature_verification_when_wrong_public_key_is_used(self):

Expand Down