12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from unittest.mock import Mock
- import pytest
- from ..user import get_or_create_user, user_needs_updating
- SSO_ID = 1
- @pytest.fixture
- def sso_user(user):
- user.sso_id = SSO_ID
- user.save()
- return user
- def test_new_user_is_created_if_user_with_given_sso_id_doesnt_exist(dynamic_settings):
- user = get_or_create_user(
- Mock(settings=dynamic_settings),
- {
- "id": SSO_ID,
- "username": "SsoUser",
- "email": "ssouser@example.com",
- "is_active": False,
- },
- )
- assert user.sso_id == SSO_ID
- assert user.username == "SsoUser"
- assert user.email == "ssouser@example.com"
- assert user.is_active is False
- def test_user_with_sso_id_is_returned_if_they_exist(dynamic_settings, sso_user):
- user = get_or_create_user(
- Mock(settings=dynamic_settings),
- {"id": SSO_ID, "username": "SsoUser", "email": "ssouser@example.com"},
- )
- assert user == sso_user
- def test_user_with_sso_id_is_updated_using_provider_data(dynamic_settings, sso_user):
- user = get_or_create_user(
- Mock(settings=dynamic_settings),
- {
- "id": SSO_ID,
- "username": "SsoUser",
- "email": "ssouser@example.com",
- "is_active": False,
- },
- )
- sso_user.refresh_from_db()
- assert sso_user.username == "SsoUser"
- assert sso_user.email == "ssouser@example.com"
- assert sso_user.is_active is False
- def test_user_needs_updating_if_their_username_changed(user):
- assert user_needs_updating(user, {"username": "Changed", "email": user.email})
- def test_user_needs_updating_if_their_email_changed(user):
- assert user_needs_updating(
- user, {"username": user.username, "email": "changed@example.com"}
- )
- def test_user_needs_updating_if_their_active_status_changed(user):
- assert user_needs_updating(
- user,
- {
- "username": user.username,
- "email": user.email,
- "is_active": not user.is_active,
- },
- )
- def test_user_doesnt_need_updating_if_their_data_is_same(user):
- assert not user_needs_updating(
- user,
- {"username": user.username, "email": user.email, "is_active": user.is_active},
- )
|