feat: add xpd purchase records view
This commit is contained in:
@@ -106,6 +106,43 @@ class XpdExchangeTests(unittest.TestCase):
|
||||
self.assertEqual((first_params['page_begin'], first_params['page_num']), ('0', '1'))
|
||||
self.assertEqual((second_params['page_begin'], second_params['page_num']), ('10', '2'))
|
||||
|
||||
def test_purchase_records_parses_order_list_and_paginates(self):
|
||||
first_record = {
|
||||
'sSerialNum': 'order-1',
|
||||
'dtBuyTime': '2026-08-08 01:00:42',
|
||||
'dtPayTime': '2026-08-08 01:00:55',
|
||||
'iStatus': '3',
|
||||
'iPrice': '800',
|
||||
'iPayAmount': '800',
|
||||
'sRoleName': '测试角色',
|
||||
'sGoodsInfo': json.dumps({
|
||||
'list': [{'sGoodsName': '改名卡', 'sGoodsPic': 'https://cdn.example/item.jpg'}],
|
||||
}),
|
||||
}
|
||||
self.client._request = Mock(side_effect=[
|
||||
SimpleNamespace(text=f'var info={{"ret":"0","msg":"ok","data":{{"cnt":11,"list":{json.dumps([first_record])}}}}};'),
|
||||
SimpleNamespace(text='var info={"ret":"0","msg":"ok","data":{"cnt":11,"list":[]}};'),
|
||||
])
|
||||
|
||||
result = self.client.xpd_purchase_records(
|
||||
embed_query={
|
||||
'gameId': 'cjm', 'actId': '18882', 'appId': 'bp_cf',
|
||||
'livePlatId': 'douyu', 'code': 'fresh-code',
|
||||
'timestamp': '123', 'v': '2.0', 'sig': 'fresh-signature',
|
||||
},
|
||||
act_id='46195',
|
||||
page_size=1,
|
||||
)
|
||||
|
||||
self.assertEqual(result['total'], 11)
|
||||
self.assertEqual(result['records'][0]['goods_name'], '改名卡')
|
||||
self.assertEqual(result['records'][0]['serial'], 'order-1')
|
||||
self.assertEqual(self.client._request.call_count, 2)
|
||||
params = self.client._request.call_args_list[0].kwargs['params']
|
||||
self.assertEqual(params['_service'], 'order.list')
|
||||
self.assertEqual(params['pn'], '1')
|
||||
self.assertEqual(params['code'], 'fresh-code')
|
||||
|
||||
|
||||
def test_exchange_keeps_raw_price_from_goods_list(self):
|
||||
self.client._request = Mock(side_effect=[
|
||||
|
||||
Reference in New Issue
Block a user