42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import re
|
|
import unittest
|
|
|
|
from core.device_id import is_valid_oaid, oaid_from_seed_material
|
|
|
|
|
|
class DeviceIdTests(unittest.TestCase):
|
|
def test_oaid_from_seed_material_is_stable_uppercase_sha256_shape(self):
|
|
oaid = oaid_from_seed_material(
|
|
[
|
|
"ANDROID_0123456789abcdef",
|
|
"ANDROID_fedcba9876543210",
|
|
"ANDROID_0011223344556677",
|
|
"DFP" + "A" * 61,
|
|
]
|
|
)
|
|
|
|
self.assertEqual(
|
|
oaid,
|
|
"4450249A4464DEA6C2C6C32811552E6F98B536AE6BD2996911EFA00AB572D228",
|
|
)
|
|
self.assertTrue(is_valid_oaid(oaid))
|
|
self.assertRegex(oaid, re.compile(r"^[0-9A-F]{64}$"))
|
|
|
|
def test_oaid_from_seed_material_changes_when_seed_changes(self):
|
|
left = oaid_from_seed_material(["ANDROID_0123456789abcdef", "seed-a"])
|
|
right = oaid_from_seed_material(["ANDROID_0123456789abcdef", "seed-b"])
|
|
|
|
self.assertNotEqual(left, right)
|
|
self.assertTrue(is_valid_oaid(left))
|
|
self.assertTrue(is_valid_oaid(right))
|
|
|
|
def test_is_valid_oaid_rejects_empty_lowercase_and_wrong_length(self):
|
|
self.assertFalse(is_valid_oaid(""))
|
|
self.assertFalse(is_valid_oaid("a" * 64))
|
|
self.assertFalse(is_valid_oaid("A" * 63))
|
|
self.assertFalse(is_valid_oaid("G" * 64))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|