fix: preserve xpd role platform in wallet queries

This commit is contained in:
yml2213
2026-08-09 10:06:57 +08:00
parent 8b7ff770e2
commit ba35ac5c0d
4 changed files with 359 additions and 7 deletions
+24
View File
@@ -1,4 +1,5 @@
import json
import re
import unittest
from types import SimpleNamespace
from unittest.mock import Mock
@@ -47,6 +48,29 @@ class XpdExchangeTests(unittest.TestCase):
'paytype': 1,
})
def test_role_and_balance_preserve_ios_platform_zero(self):
self.client._request = Mock(return_value=SimpleNamespace(
text=(
'var info={"gameOpenId":"openid-ios","roleId":"role-ios",'
'"roleName":"iOS角色","type":"wx","platId":0,"area":1};'
),
))
role = self.client.xpd_get_role(embed_query={}, act_id='46195', rid='9263298')
self.assertEqual(role['plat_id'], '0')
self.assertEqual(role['area'], '1')
self.client._request = Mock(return_value=SimpleNamespace(
text='var banlanceInfo={"ret":0,"balance":2199};',
))
result = self.client.xpd_balance(
embed_query={}, act_id='46195', openid='openid-ios',
roleid='role-ios', plat='0', areaid='1',
)
params = self.client._request.call_args.kwargs['params']
self.assertEqual(params['plat'], '0')
self.assertTrue(re.fullmatch(r'\d{13}', params['_time']))
self.assertEqual(result['balance'], 2199)
def test_exchange_surfaces_daoju_failure_message(self):
self.client._request = Mock(return_value=SimpleNamespace(
text='var buyInfo={"ret":"-1","msg":"点券不足"};',