mirror of
https://github.com/nox-project/nox-framework.git
synced 2026-06-08 16:07:17 +00:00
NOX Framework v1.0.0
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""tests/test_identity.py — Unit tests for IdentityResolver Union-Find clustering."""
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
from nox import Record, IdentityResolver
|
||||
|
||||
|
||||
def _rec(email="", username="", password="", source="S"):
|
||||
return Record(source=source, email=email, username=username, password=password)
|
||||
|
||||
|
||||
def test_single_record_one_cluster():
|
||||
records = [_rec(email="a@b.com")]
|
||||
profiles = IdentityResolver(records).resolve()
|
||||
assert len(profiles) == 1
|
||||
|
||||
|
||||
def test_shared_password_merges_clusters():
|
||||
# password must be > 6 chars to be used as a pivot key
|
||||
records = [
|
||||
_rec(email="a@b.com", password="shared_password_long"),
|
||||
_rec(email="c@d.com", password="shared_password_long"),
|
||||
]
|
||||
profiles = IdentityResolver(records).resolve()
|
||||
assert len(profiles) == 1
|
||||
|
||||
|
||||
def test_distinct_records_separate_clusters():
|
||||
records = [
|
||||
_rec(email="a@b.com", password="uniquepassword1"),
|
||||
_rec(email="c@d.com", password="uniquepassword2"),
|
||||
]
|
||||
profiles = IdentityResolver(records).resolve()
|
||||
assert len(profiles) == 2
|
||||
|
||||
|
||||
def test_empty_records():
|
||||
profiles = IdentityResolver([]).resolve()
|
||||
assert profiles == []
|
||||
|
||||
|
||||
def test_hvt_flag_propagates():
|
||||
records = [_rec(email="admin@corp.com", password="secretpass")]
|
||||
profiles = IdentityResolver(records).resolve()
|
||||
assert profiles[0].is_hvt is True
|
||||
Reference in New Issue
Block a user