import unittest from core.device_cookie import apply_device_profile_to_cookie, cookie_to_string from core.device_id import is_valid_oaid, oaid_from_seed_material from core.device_profile import DeviceProfileGenerator class DeviceCookieTests(unittest.TestCase): def test_apply_device_profile_preserves_auth_and_overlays_device_fields(self): profile = DeviceProfileGenerator(seed=20260711).new_profile() profile.apply_cloud_identity( "ANDROID_69646c9107f45c63", 2, "DFPB39C1B79D15E65AA00E29C724073B1578784BDC532027CF94846A0C145787", ) cookie = { "userId": "1579452490", "kuaishou.api_st": "API_ST", "token": "TOKEN", "did": "ANDROID_oldoldoldold", "oDid": "ANDROID_oldoldoldold", "rdid": "ANDROID_oldoldoldold", "egid": "OLD_EGID", } result = apply_device_profile_to_cookie(cookie, profile) self.assertEqual(result["userId"], "1579452490") self.assertEqual(result["kuaishou.api_st"], "API_ST") self.assertEqual(result["token"], "TOKEN") self.assertEqual(result["did"], profile.did) self.assertEqual(result["oDid"], profile.o_did) self.assertEqual(result["rdid"], profile.rdid) self.assertEqual(result["egid"], profile.egid) self.assertEqual(result["oaid"], profile.runtime_hints.oaid) self.assertEqual(result["cdid_tag"], "2") self.assertEqual(result["appver"], profile.app_version) self.assertEqual(result["sys"], f"ANDROID_{profile.android_release}") self.assertIn(profile.model, result["mod"]) self.assertEqual(result["did_gt"], profile.runtime_hints.did_gt or str(profile.install_time_ms)) self.assertEqual(result["boardPlatform"], profile.board_platform) self.assertEqual(result["socName"], profile.soc_name) self.assertEqual(result["max_memory"], str(profile.max_memory)) self.assertEqual(result["deviceBit"], profile.device_bit) self.assertEqual(result["sw"], str(profile.screen_width)) self.assertEqual(result["sh"], str(profile.screen_height)) self.assertEqual(result["totalMemory"], str(profile.total_memory_mb)) def test_device_profile_oaid_is_derived_from_stable_seed_material(self): profile = DeviceProfileGenerator(seed=20260711).new_profile() self.assertEqual( profile.runtime_hints.oaid, oaid_from_seed_material( [ profile.android_id, profile.local_did, profile.rdid, profile.g_rdi2, profile.sid, profile.egid, ] ), ) self.assertTrue(is_valid_oaid(profile.runtime_hints.oaid)) def test_cookie_to_string_keeps_inserted_order(self): text = cookie_to_string({"a": "1", "b": "2"}) self.assertEqual(text, "a=1; b=2") if __name__ == "__main__": unittest.main()