mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-14 18:39:27 -05:00
124 lines
3.3 KiB
Python
Executable File
124 lines
3.3 KiB
Python
Executable File
import libraries.stripe
|
|
from libraries.stripe.test.helper import StripeApiTestCase
|
|
|
|
|
|
class ListObjectTests(StripeApiTestCase):
|
|
|
|
def setUp(self):
|
|
super(ListObjectTests, self).setUp()
|
|
|
|
self.lo = libraries.stripe.resource.ListObject.construct_from({
|
|
'id': 'me',
|
|
'url': '/my/path',
|
|
'data': ['foo'],
|
|
}, 'mykey')
|
|
|
|
self.mock_response([{
|
|
'object': 'charge',
|
|
'foo': 'bar',
|
|
}])
|
|
|
|
def assertResponse(self, res):
|
|
self.assertTrue(isinstance(res[0], libraries.stripe.Charge))
|
|
self.assertEqual('bar', res[0].foo)
|
|
|
|
def test_for_loop(self):
|
|
seen = []
|
|
|
|
for item in self.lo:
|
|
seen.append(item)
|
|
|
|
self.assertEqual(['foo'], seen)
|
|
|
|
def test_list(self):
|
|
res = self.lo.list(myparam='you')
|
|
|
|
self.requestor_mock.request.assert_called_with(
|
|
'get', '/my/path', {'myparam': 'you'}, None)
|
|
|
|
self.assertResponse(res)
|
|
|
|
def test_create(self):
|
|
res = self.lo.create(myparam='eter')
|
|
|
|
self.requestor_mock.request.assert_called_with(
|
|
'post', '/my/path', {'myparam': 'eter'}, None)
|
|
|
|
self.assertResponse(res)
|
|
|
|
def test_retrieve(self):
|
|
res = self.lo.retrieve('myid', myparam='cow')
|
|
|
|
self.requestor_mock.request.assert_called_with(
|
|
'get', '/my/path/myid', {'myparam': 'cow'}, None)
|
|
|
|
self.assertResponse(res)
|
|
|
|
|
|
class AutoPagingTests(StripeApiTestCase):
|
|
|
|
@staticmethod
|
|
def pageable_model_response(ids, has_more):
|
|
return {
|
|
'object': 'list',
|
|
'url': '/v1/pageablemodels',
|
|
'data': [{'id': id, 'object': 'pageablemodel'} for id in ids],
|
|
'has_more': has_more,
|
|
}
|
|
|
|
def test_iter_one_page(self):
|
|
lo = libraries.stripe.resource.ListObject.construct_from(
|
|
self.pageable_model_response(['pm_123', 'pm_124'], False),
|
|
'mykey'
|
|
)
|
|
|
|
self.requestor_mock.request.assert_not_called()
|
|
|
|
seen = [item['id'] for item in lo.auto_paging_iter()]
|
|
|
|
self.assertEqual(['pm_123', 'pm_124'], seen)
|
|
|
|
def test_iter_two_pages(self):
|
|
lo = libraries.stripe.resource.ListObject.construct_from(
|
|
self.pageable_model_response(['pm_123', 'pm_124'], True),
|
|
'mykey'
|
|
)
|
|
lo._retrieve_params = {'foo': 'bar'}
|
|
|
|
self.mock_response(
|
|
self.pageable_model_response(['pm_125', 'pm_126'], False)
|
|
)
|
|
|
|
seen = [item['id'] for item in lo.auto_paging_iter()]
|
|
|
|
self.requestor_mock.request.assert_called_with(
|
|
'get',
|
|
'/v1/pageablemodels',
|
|
{
|
|
'starting_after': 'pm_124',
|
|
'foo': 'bar'
|
|
},
|
|
None
|
|
)
|
|
|
|
self.assertEqual(['pm_123', 'pm_124', 'pm_125', 'pm_126'], seen)
|
|
|
|
def test_class_method_two_pages(self):
|
|
self.mock_response({
|
|
'object': 'list',
|
|
'data': [{'id': 'ch_001'}],
|
|
'url': '/v1/charges',
|
|
'has_more': False,
|
|
})
|
|
|
|
seen = [item['id'] for item in libraries.stripe.Charge.auto_paging_iter(
|
|
limit=25,
|
|
foo='bar'
|
|
)]
|
|
|
|
self.requestor_mock.request.assert_called_with(
|
|
'get', '/v1/charges', {'limit': 25, 'foo': 'bar'}
|
|
)
|
|
|
|
self.assertEqual(['ch_001'], seen)
|