Coverage for sm/utils.py: 100%
11 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-24 19:06 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-24 19:06 +0000
1import hashlib
2import random
3import string
6def get_email_hash(email):
7 """
8 Returns MD5 hash of lowercase email for avatar services.
9 """
10 if not email:
11 return "00000000000000000000000000000000"
12 return hashlib.md5(email.lower().encode("utf-8")).hexdigest()
15def random_string(len=10):
16 return "".join(
17 random.SystemRandom().choice(string.ascii_lowercase + string.digits)
18 for _ in range(10)
19 )
22def random_number(start=0, end=10):
23 return random.randint(start, end)