Skip to content
Snippets Groups Projects

Heuristic for telling if guest is registered and verified

Merged Deaktivert bruker requested to merge andretol/greg:GREG-20/2 into master
2 files
+ 85
0
Compare changes
  • Side-by-side
  • Inline
Files
2
  • 22ebe900
    Adds a convenience method, is_verified() -> bool, to the Person model
    that returns true if the guest has at least one identity verification method
    associated with them.
    
    It is the combination of is_verified() and is_registered() that qualifies
    a guest for account creation in the IGA.
    
    Fixes: GREG-20
@@ -87,6 +87,19 @@ def passport(a_year_ago: datetime) -> PersonIdentity:
@@ -87,6 +87,19 @@ def passport(a_year_ago: datetime) -> PersonIdentity:
)
)
 
@pytest.fixture
 
def unverified_passport() -> PersonIdentity:
 
return PersonIdentity(type=PersonIdentity.IdentityType.PASSPORT)
 
 
 
@pytest.fixture
 
def future_identity(a_year_into_future: datetime) -> PersonIdentity:
 
return PersonIdentity(
 
type=PersonIdentity.IdentityType.NATIONAL_ID_CARD,
 
verified_when=a_year_into_future,
 
)
 
 
@pytest.fixture
@pytest.fixture
def feide_verified(person: Person, feide_id: PersonIdentity) -> Person:
def feide_verified(person: Person, feide_id: PersonIdentity) -> Person:
person.identities.add(feide_id, bulk=False)
person.identities.add(feide_id, bulk=False)
@@ -125,3 +138,40 @@ def test_is_registered_completed_in_past(person, a_year_ago):
@@ -125,3 +138,40 @@ def test_is_registered_completed_in_past(person, a_year_ago):
def test_is_registered_completed_in_future(person, a_year_into_future):
def test_is_registered_completed_in_future(person, a_year_into_future):
person.registration_completed_date = a_year_into_future
person.registration_completed_date = a_year_into_future
assert not person.is_registered
assert not person.is_registered
 
 
 
@pytest.mark.django_db
 
@pytest.mark.parametrize("identity_type", PersonIdentity.IdentityType)
 
def test_is_verified(identity_type, a_year_ago, person):
 
identity = PersonIdentity(type=identity_type, verified_when=a_year_ago)
 
person.identities.add(identity, bulk=False)
 
assert person.is_verified
 
 
 
@pytest.mark.django_db
 
def test_is_verified_multiple_identities(person, feide_id, passport):
 
person.identities.add(feide_id, passport, bulk=False)
 
assert person.is_verified
 
 
 
@pytest.mark.django_db
 
def is_verified_when_identity_is_unverified(person, unverified_passport):
 
person.identities.add(unverified_passport, bulk=False)
 
assert not person.is_verified
 
 
 
@pytest.mark.django_db
 
def is_verified_mixed_verified_and_unverified_identities(
 
person,
 
feide_id,
 
unverified_passport,
 
future_identity,
 
):
 
person.identities.add(feide_id, unverified_passport, future_identity, bulk=False)
 
assert person.is_verified
 
 
 
@pytest.mark.django_db
 
def is_verified_in_future(person, future_identity):
 
person.identities.add(future_identity, bulk=False)
 
assert not person.is_verified
Loading