Files
creator-hub/browser_gateway/test_identity_binding.py
T
rogee f1a62e25de
douyin-release-gate / verify (push) Failing after 4m22s
feat(account): create browser environments before verified login
2026-10-06 05:55:53 +08:00

35 lines
1.7 KiB
Python

"""First login discovers a UID; subsequent logins must match that UID."""
import unittest
from contextlib import nullcontext
from unittest.mock import Mock, patch
from .server.http import Gateway, RequestError
class IdentityBindingTests(unittest.TestCase):
def setUp(self):
self.browser = Mock()
self.browser.identity.return_value = {"uid": "123456789", "sec_uid": "MS4wLjAB-test", "unique_id": "douyin-name"}
self.gateway = Gateway(Mock(), "token", "node", browser=self.browser)
self.generation = {"binding_version": 1, "runtime_id": "a" * 64, "network_id": "native-" + "b" * 32}
self.lock = patch.object(self.gateway, "_alias_lock", return_value=nullcontext())
self.check = patch.object(self.gateway, "_require_douyin_generation")
self.lock.start()
self.check_mock = self.check.start()
self.addCleanup(self.lock.stop)
self.addCleanup(self.check.stop)
def test_first_login_reads_uid_without_a_preconfigured_key(self):
identity = self.gateway.douyin_identity("account-a", self.generation)
self.assertEqual(identity["uid"], "123456789")
self.check_mock.assert_called_once()
def test_bound_login_requires_same_uid(self):
identity = self.gateway.douyin_identity("account-a", {**self.generation, "expected_account_key": "123456789"})
self.assertEqual(identity["uid"], "123456789")
with self.assertRaises(RequestError) as caught:
self.gateway.douyin_identity("account-a", {**self.generation, "expected_account_key": "987654321"})
self.assertEqual(caught.exception.status, 409)
self.assertIn("987654321", str(caught.exception))
self.assertIn("123456789", str(caught.exception))