和平小店可以返回所有商品

This commit is contained in:
yml2213
2026-08-08 00:30:58 +08:00
parent 85813a5095
commit de23d87087
5 changed files with 107 additions and 35 deletions
+29 -2
View File
@@ -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__':