Files
py12306/tests/test_user.py
2019-12-31 21:35:56 +08:00

64 lines
2.0 KiB
Python

from app.models import User
from app.user import TrainUser, CaptchaTool, TrainUserManager
from tests import BaseTest, async_test
class TestCaptchaTool(BaseTest):
def setUp(self) -> None:
super().setUp()
self.captcha_tool = CaptchaTool.share()
@async_test
async def test_get_base64_code(self):
ret = await self.captcha_tool.get_base64_code()
self.assertIsInstance(ret, str)
@async_test
async def test_identify_captcha(self):
captcha_image64 = await self.captcha_tool.get_base64_code()
ret = await self.captcha_tool.identify_captcha(captcha_image64)
self.assertIsInstance(ret, str)
@async_test
async def test_verify_captcha_answer(self):
captcha_image64 = await self.captcha_tool.get_base64_code()
ret = await self.captcha_tool.identify_captcha(captcha_image64)
ret = await self.captcha_tool.verify_captcha_answer(ret)
self.assertTrue(ret)
class TestUser(BaseTest):
@async_test
async def setUp(self) -> None:
super().setUp()
self.user = await User.first()
self.train_user = TrainUser(self.user)
@async_test
async def test_login_user(self):
self.user.last_cookies = {}
ret = await self.train_user.login_user()
self.assertTrue(ret)
@async_test
async def test_update_device_id(self):
await self.train_user.update_device_id()
cookies = self.train_user.session.session.cookie_jar._cookies
self.assertIsInstance(cookies.get('').get('RAIL_DEVICEID').value, str)
self.assertIsInstance(cookies.get('').get('RAIL_EXPIRATION').value, str)
@async_test
async def test_get_user_info(self):
await self.train_user.login_user()
ret = await self.train_user.get_user_info()
self.assertIn('name', ret)
self.assertIn('user_name', ret)
@async_test
async def test_get_user_passengers(self):
await self.train_user.login_user()
ret = await self.train_user.get_user_passengers()
self.assertGreater(len(ret), 1)