Files
password-security-python/tests/test_hashing.py

27 lines
909 B
Python

import re
from salt import hash_password, verify_password
def test_hash_password_round_trip() -> None:
salt, hashed = hash_password("correct horse battery staple")
assert verify_password("correct horse battery staple", salt, hashed)
assert not verify_password("wrong", salt, hashed)
def test_hash_password_returns_base64() -> None:
salt, hashed = hash_password("secret")
base64_pattern = re.compile(r"^[A-Za-z0-9+/]+={0,2}$")
assert base64_pattern.fullmatch(salt)
assert base64_pattern.fullmatch(hashed)
def test_verify_password_handles_invalid_base64() -> None:
assert verify_password("secret", "**invalid**", "???") is False
def test_hash_password_with_algorithm_parameter():
"""Verify hash_password accepts algorithm parameter."""
salt, hashed = hash_password("test", algorithm="pbkdf2")
assert verify_password("test", salt, hashed, algorithm="pbkdf2")