和平小店可以返回所有商品
This commit is contained in:
@@ -76,8 +76,35 @@ class XpdExchangeTests(unittest.TestCase):
|
||||
|
||||
self.assertEqual(result['goods'][0]['price'], 6800)
|
||||
self.assertEqual(result['goods'][0]['goods_left'], 0)
|
||||
fields = self.client._request.call_args.kwargs['params']['fields']
|
||||
self.assertIn('iGoodsLeft', fields.split(','))
|
||||
params = self.client._request.call_args.kwargs['params']
|
||||
self.assertEqual(params['excludeFields'], 'iCategoryId_76')
|
||||
self.assertNotIn('category', params)
|
||||
|
||||
def test_list_goods_fetches_every_page_and_deduplicates_goods(self):
|
||||
first_page = [
|
||||
{'iGoodsId': f'goods-{index}', 'sGoodsName': f'商品 {index}'}
|
||||
for index in range(10)
|
||||
]
|
||||
second_page = [
|
||||
{'iGoodsId': 'goods-9', 'sGoodsName': '重复商品'},
|
||||
{'iGoodsId': 'goods-10', 'sGoodsName': '商品 10'},
|
||||
]
|
||||
self.client._request = Mock(side_effect=[
|
||||
SimpleNamespace(text=f'var recommend={{"errcode":0,"data":{{"client_data":{{"itemsdetail":{json.dumps(first_page)}}}}}}};'),
|
||||
SimpleNamespace(text=f'var recommend={{"errcode":0,"data":{{"client_data":{{"itemsdetail":{json.dumps(second_page)}}}}}}};'),
|
||||
])
|
||||
|
||||
result = self.client.xpd_list_goods(
|
||||
embed_query={}, act_id='46195', openid='openid', roleid='roleid',
|
||||
)
|
||||
|
||||
self.assertEqual(len(result['goods']), 11)
|
||||
self.assertEqual([item['commodity_id'] for item in result['goods']][-1], 'goods-10')
|
||||
self.assertEqual(self.client._request.call_count, 2)
|
||||
first_params = self.client._request.call_args_list[0].kwargs['params']
|
||||
second_params = self.client._request.call_args_list[1].kwargs['params']
|
||||
self.assertEqual((first_params['page_begin'], first_params['page_num']), ('0', '1'))
|
||||
self.assertEqual((second_params['page_begin'], second_params['page_num']), ('10', '2'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user