Skip to content

Commit

Permalink
patch other tests
Browse files Browse the repository at this point in the history
  • Loading branch information
helylle committed Nov 19, 2024
1 parent 0a47e43 commit 13570a9
Show file tree
Hide file tree
Showing 8 changed files with 143 additions and 33 deletions.
14 changes: 11 additions & 3 deletions src/eduid/webapp/bankid/tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -535,9 +535,13 @@ def test_mfa_token_verify_wrong_verified_nin(self) -> None:

self._verify_user_parameters(eppn, identity=nin, identity_present=False)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_mfa_token_verify_no_verified_nin(self, mock_request_user_sync: MagicMock) -> None:
def test_mfa_token_verify_no_verified_nin(
self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_user_nin
Expand Down Expand Up @@ -691,9 +695,11 @@ def test_webauthn_token_verify_backdoor(self, mock_request_user_sync: MagicMock)

self._verify_user_parameters(eppn, identity=nin, identity_verified=True, token_verified=True, num_proofings=2)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_verify(self, mock_request_user_sync: MagicMock) -> None:
def test_nin_verify(self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
self._verify_user_parameters(eppn, num_mfa_tokens=0, identity_verified=False)
Expand Down Expand Up @@ -754,9 +760,11 @@ def test_mfa_login_no_nin(self) -> None:

self._verify_user_parameters(eppn, num_mfa_tokens=0, identity_verified=False, num_proofings=0)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_mfa_login_unverified_nin(self, mock_request_user_sync: MagicMock) -> None:
def test_mfa_login_unverified_nin(self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None
eppn = self.test_unverified_user_eppn

# Add locked nin to user
Expand Down
24 changes: 18 additions & 6 deletions src/eduid/webapp/common/api/tests/test_nin_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ def test_add_nin_to_user_existing_verified(self) -> None:
with pytest.raises(UserDoesNotExist):
self.app.private_userdb.get_user_by_eppn(user.eppn)

def test_verify_nin_for_user_navet(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_nin_for_user_navet(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = self.test_user_nin
user = self.insert_no_nins_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.test_user_nin, created_by="NinHelpersTest", verified=False)
Expand All @@ -244,7 +246,9 @@ def test_verify_nin_for_user_navet(self) -> None:
)
self._test_verify_nin_for_user(user=user, nin_element=nin_element, proofing_log_entry=proofing_log_entry)

def test_verify_nin_for_user_eid(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_nin_for_user_eid(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None
user = self.insert_no_nins_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.test_user_nin, created_by="NinHelpersTest", verified=False)
Expand All @@ -255,7 +259,9 @@ def test_verify_nin_for_user_eid(self) -> None:
)
self._test_verify_nin_for_user(user=user, nin_element=nin_element, proofing_log_entry=proofing_log_entry)

def test_verify_nin_for_proofing_user_navet(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_nin_for_proofing_user_navet(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None
user = self.insert_no_nins_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.test_user_nin, created_by="NinHelpersTest", verified=False)
Expand All @@ -268,7 +274,9 @@ def test_verify_nin_for_proofing_user_navet(self) -> None:
user=user, nin_element=nin_element, proofing_log_entry=proofing_log_entry
)

def test_verify_nin_for_proofing_user_eid(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_nin_for_proofing_user_eid(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None
user = self.insert_no_nins_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.test_user_nin, created_by="NinHelpersTest", verified=False)
Expand All @@ -281,7 +289,9 @@ def test_verify_nin_for_proofing_user_eid(self) -> None:
user=user, nin_element=nin_element, proofing_log_entry=proofing_log_entry
)

def test_verify_nin_for_user_existing_not_verified(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_nin_for_user_existing_not_verified(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None
user = self.insert_not_verified_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.test_user_nin, created_by="NinHelpersTest", verified=False)
Expand All @@ -299,7 +309,9 @@ def test_verify_nin_for_user_existing_not_verified(self) -> None:
user=user, proofing_state=proofing_state, number=self.test_user_nin, created_by="AlreadyAddedNinHelpersTest"
)

def test_verify_wrong_nin_for_user_existing_not_verified(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_wrong_nin_for_user_existing_not_verified(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None
user = self.insert_not_verified_user()
nin_element = NinProofingElement.from_dict(
dict(number=self.wrong_test_user_nin, created_by="NinHelpersTest", verified=False)
Expand Down
36 changes: 28 additions & 8 deletions src/eduid/webapp/eidas/tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -608,13 +608,15 @@ def test_mfa_token_verify_wrong_verified_nin(self) -> None:

self._verify_user_parameters(eppn, identity=nin, identity_present=False)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_mfa_token_verify_no_verified_nin(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_user_nin
Expand Down Expand Up @@ -743,9 +745,13 @@ def test_mfa_token_verify_auth_fail(self) -> None:

self._verify_user_parameters(eppn)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_webauthn_token_verify_backdoor(self, mock_request_user_sync: MagicMock) -> None:
def test_webauthn_token_verify_backdoor(
self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_backdoor_nin
Expand All @@ -768,11 +774,15 @@ def test_webauthn_token_verify_backdoor(self, mock_request_user_sync: MagicMock)

self._verify_user_parameters(eppn, identity=nin, identity_verified=True, token_verified=True, num_proofings=2)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_verify(self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock) -> None:
def test_nin_verify(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
self._verify_user_parameters(eppn, num_mfa_tokens=0, identity_verified=False)
Expand Down Expand Up @@ -835,13 +845,15 @@ def test_mfa_login_no_nin(self) -> None:

self._verify_user_parameters(eppn, num_mfa_tokens=0, identity_verified=False, num_proofings=0)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_mfa_login_unverified_nin(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None
eppn = self.test_unverified_user_eppn

# Add locked nin to user
Expand Down Expand Up @@ -1100,9 +1112,11 @@ def test_mfa_login_backdoor(self, mock_request_user_sync: MagicMock) -> None:

self._verify_user_parameters(eppn, num_mfa_tokens=0, identity_verified=True, num_proofings=0)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_verify_backdoor(self, mock_request_user_sync: MagicMock) -> None:
def test_nin_verify_backdoor(self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_backdoor_nin
Expand All @@ -1122,13 +1136,15 @@ def test_nin_verify_backdoor(self, mock_request_user_sync: MagicMock) -> None:

self._verify_user_parameters(eppn, num_mfa_tokens=0, identity=nin, identity_verified=True, num_proofings=1)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_verify_no_backdoor_in_pro(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_backdoor_nin
Expand All @@ -1153,13 +1169,15 @@ def test_nin_verify_no_backdoor_in_pro(
eppn, identity=self.test_user_nin, num_mfa_tokens=0, num_proofings=1, identity_verified=True
)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_verify_no_backdoor_misconfigured(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
nin = self.test_backdoor_nin
Expand Down Expand Up @@ -1252,13 +1270,15 @@ def test_mfa_authentication_wrong_nin(self) -> None:
identity=self.test_user_wrong_nin,
)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_all_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_nin_staging_remap_verify(
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock
self, mock_request_user_sync: MagicMock, mock_get_all_navet_data: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_all_navet_data.return_value = self._get_all_navet_data()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.test_unverified_user_eppn
remapped_nin = NinIdentity(number="190102031234")
Expand Down
4 changes: 3 additions & 1 deletion src/eduid/webapp/freja_eid/tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,9 +335,11 @@ def test_verify_identity_request(self) -> None:
], f"{query['scope']} != {[' '.join(self.app.conf.freja_eid_client.scopes)]}"
assert query["code_challenge_method"] == ["S256"]

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_verify_nin_identity(self, mock_request_user_sync: MagicMock) -> None:
def test_verify_nin_identity(self, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock) -> None:
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

eppn = self.unverified_test_user.eppn
country = countries.get("Sweden")
Expand Down
24 changes: 19 additions & 5 deletions src/eduid/webapp/letter_proofing/tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,10 @@ def test_letter_sent_status(self) -> None:
expires_string = expires.strftime("%Y-%m-%d")
self.assertIsInstance(expires_string, str)

def test_verify_letter_code(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_verify_letter_code(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None

response1 = self.send_letter(self.test_user_nin)
proofing_state = self.app.proofing_statedb.get_state_by_eppn(self.test_user_eppn)
# Deliberately test the CSRF token from the send_letter response,
Expand Down Expand Up @@ -307,7 +310,10 @@ def test_verify_letter_expired(self) -> None:
response, type_="POST_LETTER_PROOFING_VERIFY_CODE_FAIL", msg=LetterMsg.letter_expired
)

def test_proofing_flow(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_proofing_flow(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None

self.send_letter(self.test_user_nin)
self.get_state()
proofing_state = self.app.proofing_statedb.get_state_by_eppn(self.test_user_eppn)
Expand All @@ -319,7 +325,10 @@ def test_proofing_flow(self) -> None:
user = self.app.private_userdb.get_user_by_eppn(self.test_user_eppn)
self._check_nin_verified_ok(user=user, proofing_state=proofing_state, number=self.test_user_nin)

def test_proofing_flow_previously_added_nin(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_proofing_flow_previously_added_nin(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None

user = self.app.central_userdb.get_user_by_eppn(self.test_user_eppn)
not_verified_nin = NinIdentity(number=self.test_user_nin, created_by="test", is_verified=False)
user.identities.add(not_verified_nin)
Expand All @@ -337,7 +346,10 @@ def test_proofing_flow_previously_added_nin(self) -> None:
user=user, proofing_state=proofing_state, number=self.test_user_nin, created_by=not_verified_nin.created_by
)

def test_proofing_flow_previously_added_wrong_nin(self) -> None:
@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
def test_proofing_flow_previously_added_wrong_nin(self, mock_reference_nin: MagicMock) -> None:
mock_reference_nin.return_value = None

# Send letter to correct nin
self.send_letter(self.test_user_nin)

Expand Down Expand Up @@ -420,13 +432,15 @@ def test_locked_identity_correct_nin(
with self.session_cookie(self.browser, self.test_user_eppn):
self.send_letter(self.test_user_nin)

@patch("eduid.webapp.common.api.decorators.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_postal_address")
def test_locked_identity_incorrect_nin(
self, mock_get_postal_address: MagicMock, mock_request_user_sync: MagicMock
self, mock_get_postal_address: MagicMock, mock_request_user_sync: MagicMock, mock_reference_nin: MagicMock
) -> None:
mock_get_postal_address.return_value = self._get_full_postal_address()
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None
user = self.app.central_userdb.get_user_by_eppn(self.test_user_eppn)

user.locked_identity.add(NinIdentity(number=self.test_user_nin, created_by="test", is_verified=True))
Expand Down
8 changes: 7 additions & 1 deletion src/eduid/webapp/lookup_mobile_proofing/tests/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,15 +173,21 @@ def test_proofing_flow_LookupMobileTaskFailed(
user = self.app.private_userdb.get_user_by_eppn(self.test_user_eppn)
self._check_nin_not_verified_no_proofing_state(user=user)

@patch("eduid.webapp.common.api.helpers.get_reference_nin_from_navet_data")
@patch("eduid.common.rpc.lookup_mobile_relay.LookupMobileRelay.find_nin_by_mobile")
@patch("eduid.common.rpc.msg_relay.MsgRelay.get_postal_address")
@patch("eduid.common.rpc.am_relay.AmRelay.request_user_sync")
def test_proofing_flow_no_match_backdoor(
self, mock_request_user_sync: MagicMock, mock_get_postal_address: MagicMock, mock_find_nin_by_mobile: MagicMock
self,
mock_request_user_sync: MagicMock,
mock_get_postal_address: MagicMock,
mock_find_nin_by_mobile: MagicMock,
mock_reference_nin: MagicMock,
) -> None:
mock_find_nin_by_mobile.return_value = None
mock_get_postal_address.return_value = None
mock_request_user_sync.side_effect = self.request_user_sync
mock_reference_nin.return_value = None

self.app.conf.magic_cookie = "magic-cookie"
self.app.conf.magic_cookie_name = "magic-cookie"
Expand Down
Loading

0 comments on commit 13570a9

Please sign in to comment.