Changeset View
Changeset View
Standalone View
Standalone View
blendercloud/tests/test_session.py
| from unittest.mock import patch, ANY | from unittest.mock import patch, ANY, Mock | ||||
| from django.conf import settings | from django.conf import settings | ||||
| from django.contrib.auth.models import User | from django.contrib.auth.models import User | ||||
| from django.test import RequestFactory, TestCase, override_settings | from django.test import RequestFactory, TestCase, override_settings | ||||
| from django.urls.base import reverse | from django.urls.base import reverse | ||||
| from freezegun import freeze_time | from freezegun import freeze_time | ||||
| import responses | import responses | ||||
| import blender_id_oauth_client.models as models | import blender_id_oauth_client.models as models | ||||
| from blendercloud.session import get_or_create_current_user, open_session | from blendercloud.session import get_or_create_current_user, open_session | ||||
| from common.tests.factories.users import UserFactory | from common.tests.factories.users import UserFactory | ||||
| import profiles.tests.util as util | import profiles.tests.util as util | ||||
| session_cookie_value_anon = 'eyJuZXh0X2FmdGVyX2xvZ2luIjoiLyJ9.X4CFJQ.5wFiwDul5Z3u2LECPfN8n4iwRWI' | session_cookie_value_anon = 'eyJuZXh0X2FmdGVyX2xvZ2luIjoiLyJ9.X4CFJQ.5wFiwDul5Z3u2LECPfN8n4iwRWI' | ||||
| session_cookie_value = '.eJyNj7FOAzEQRP_FNYXtXdu7-YOIDkgkqpO9u9Yhogvc5USB-HesFNSUI703mvl27WKL2jq96XSt-22ebtd3W9zB-XXGejp_fbxA1vMiM2-f-3F_fZTnp9PRPbh9u2v_Qae-2ja7w23dbaS7pBq6r2CKRIXIAhoTQrJcg0QrENDHAtlHYo1AzGq5RQ0Yhpkk55JiIezWyYB8NRTM3ljBd05Ja5chgVUo7AWi1EytFh-imTKPWbKt_e9vCSCsraFwjKmOlmScAQYNPFZ1bIgk2f38AlUFXOw.X4B_wQ.5EQ4gtZeRkKciEa2VdJZe3J2Mrk' # noqa: E501 | session_cookie_value = '.eJyNj7FOAzEQRP_FNYXtXdu7-YOIDkgkqpO9u9Yhogvc5USB-HesFNSUI703mvl27WKL2jq96XSt-22ebtd3W9zB-XXGejp_fbxA1vMiM2-f-3F_fZTnp9PRPbh9u2v_Qae-2ja7w23dbaS7pBq6r2CKRIXIAhoTQrJcg0QrENDHAtlHYo1AzGq5RQ0Yhpkk55JiIezWyYB8NRTM3ljBd05Ja5chgVUo7AWi1EytFh-imTKPWbKt_e9vCSCsraFwjKmOlmScAQYNPFZ1bIgk2f38AlUFXOw.X4B_wQ.5EQ4gtZeRkKciEa2VdJZe3J2Mrk' # noqa: E501 | ||||
| remember_token_value = '0rh4aUVwpT36dVnch9squIuYKcSRUI|82f757dc73a2a87ea43f0a985e656df2c9fbd56bb6394f0c095c5b70baefec32fb3b8b0c8b4d45d0a9f30a1763cfbd69b0fae34e6aa099809f084c6285623903' # noqa: E501 | remember_token_value = '0rh4aUVwpT36dVnch9squIuYKcSRUI|82f757dc73a2a87ea43f0a985e656df2c9fbd56bb6394f0c095c5b70baefec32fb3b8b0c8b4d45d0a9f30a1763cfbd69b0fae34e6aa099809f084c6285623903' # noqa: E501 | ||||
| @override_settings(BLENDER_CLOUD_SECRET_KEY='supersecret', BLENDER_CLOUD_AUTH_ENABLED=True) | @override_settings(BLENDER_CLOUD_SECRET_KEY='supersecret', BLENDER_CLOUD_AUTH_ENABLED=True) | ||||
| @freeze_time('2020-10-14 11:41:11') # test cookies contain fixed expiration times | @freeze_time('2020-10-14 11:41:11') # test cookies contain fixed expiration times | ||||
| @patch('storages.backends.s3boto3.S3Boto3Storage.url', Mock(return_value='s3://file')) | |||||
| @patch('storages.backends.s3boto3.S3Boto3Storage._save', Mock(return_value='path/to/file')) | |||||
| class TestSession(TestCase): | class TestSession(TestCase): | ||||
| maxDiff = None | maxDiff = None | ||||
| def setUp(self): | def setUp(self): | ||||
| self.factory = RequestFactory() | self.factory = RequestFactory() | ||||
| util.mock_blender_id_responses() | util.mock_blender_id_responses() | ||||
| self.test_url = reverse('film-list') | self.test_url = reverse('film-list') | ||||
| ▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | def test_get_or_create_current_user_creates_new_user(self): | ||||
| user = get_or_create_current_user(request) | user = get_or_create_current_user(request) | ||||
| assert user is not None | assert user is not None | ||||
| self.assertEquals(user.username, 'ⅉanedoe') | self.assertEquals(user.username, 'ⅉanedoe') | ||||
| self.assertEquals(user.email, 'jane@example.com') | self.assertEquals(user.email, 'jane@example.com') | ||||
| self.assertEquals(user.oauth_info.oauth_user_id, '2') | self.assertEquals(user.oauth_info.oauth_user_id, '2') | ||||
| self.assertEquals(user.profile.full_name, 'ⅉane ⅅoe') | self.assertEquals(user.profile.full_name, 'ⅉane ⅅoe') | ||||
| self.assertEquals(user.profile.image_url, 'http://id.local:8000/api/user/2/avatar') | self.assertEquals(user.profile.image_url, 's3://file') | ||||
| self.assertEquals( | self.assertEquals( | ||||
| sorted([g.name for g in user.groups.all()]), | sorted([g.name for g in user.groups.all()]), | ||||
| ['dev_core', 'has_subscription', 'subscriber'], | ['dev_core', 'has_subscription', 'subscriber'], | ||||
| ) | ) | ||||
| @responses.activate | @responses.activate | ||||
| def test_get_or_create_current_user_existing_user(self): | def test_get_or_create_current_user_existing_user(self): | ||||
| existing_user = UserFactory(email='somemail@example.com', oauth_info__oauth_user_id='2') | existing_user = UserFactory(email='somemail@example.com', oauth_info__oauth_user_id='2') | ||||
| ▲ Show 20 Lines • Show All 128 Lines • Show Last 20 Lines | |||||