123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- from unittest.mock import MagicMock, patch
- import pytest
- from cura.API import Account
- from cura.OAuth2.Models import UserProfile
- @pytest.fixture()
- def user_profile():
- result = UserProfile()
- result.username = "username!"
- result.profile_image_url = "profile_image_url!"
- result.user_id = "user_id!"
- return result
- def test_login():
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- account.login()
- mocked_auth_service.startAuthorizationFlow.assert_called_once_with()
- # Fake a sucesfull login
- account._onLoginStateChanged(True)
- # Attempting to log in again shouldn't change anything.
- account.login()
- mocked_auth_service.startAuthorizationFlow.assert_called_once_with()
- def test_initialize():
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- account.initialize()
- mocked_auth_service.loadAuthDataFromPreferences.assert_called_once_with()
- def test_logout():
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- account.logout()
- mocked_auth_service.deleteAuthData.assert_not_called() # We weren't logged in, so nothing should happen
- assert not account.isLoggedIn
- # Pretend the stage changed
- account._onLoginStateChanged(True)
- assert account.isLoggedIn
- account.logout()
- mocked_auth_service.deleteAuthData.assert_called_once_with()
- @patch("UM.Application.Application.getInstance")
- def test_errorLoginState(application):
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- account.loginStateChanged = MagicMock()
- account._onLoginStateChanged(True, "BLARG!")
- # Even though we said that the login worked, it had an error message, so the login failed.
- account.loginStateChanged.emit.called_with(False)
- account._onLoginStateChanged(True)
- account._onLoginStateChanged(False, "OMGZOMG!")
- account.loginStateChanged.emit.called_with(False)
- def test_userName(user_profile):
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- mocked_auth_service.getUserProfile = MagicMock(return_value = user_profile)
- assert account.userName == "username!"
- mocked_auth_service.getUserProfile = MagicMock(return_value=None)
- assert account.userName is None
- def test_profileImageUrl(user_profile):
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- mocked_auth_service.getUserProfile = MagicMock(return_value = user_profile)
- assert account.profileImageUrl == "profile_image_url!"
- mocked_auth_service.getUserProfile = MagicMock(return_value=None)
- assert account.profileImageUrl is None
- def test_userProfile(user_profile):
- account = Account(MagicMock())
- mocked_auth_service = MagicMock()
- account._authorization_service = mocked_auth_service
- mocked_auth_service.getUserProfile = MagicMock(return_value=user_profile)
- returned_user_profile = account.userProfile
- assert returned_user_profile["username"] == "username!"
- assert returned_user_profile["profile_image_url"] == "profile_image_url!"
- assert returned_user_profile["user_id"] == "user_id!"
- mocked_auth_service.getUserProfile = MagicMock(return_value=None)
- assert account.userProfile is None
|