From cf41599e2017199df037fa9e01d920e1a605bdb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 1 Feb 2018 11:43:14 +0100 Subject: [PATCH] Fixed authentication issues in unit tests The tests were logging in incorrectly, which came to light due to Pillar commit 4b5a961e1422d8e976b2bf8bb9a4f91addf9bbec. --- tests/abstract_attract_test.py | 2 ++ tests/test_shots.py | 11 +++++------ tests/test_subversion.py | 8 +++++--- tests/test_tasks.py | 18 ++++++++++++------ 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/tests/abstract_attract_test.py b/tests/abstract_attract_test.py index e3f6d13..cf648a1 100644 --- a/tests/abstract_attract_test.py +++ b/tests/abstract_attract_test.py @@ -28,6 +28,7 @@ class AbstractAttractTest(AbstractPillarTest): def ensure_project_exists(self, project_overrides=None): from attract.setup import setup_for_attract + import pillar.tests.common_test_data as ctd project_overrides = dict( picture_header=None, @@ -35,6 +36,7 @@ class AbstractAttractTest(AbstractPillarTest): **(project_overrides or {}) ) proj_id, project = AbstractPillarTest.ensure_project_exists(self, project_overrides) + ctd.EXAMPLE_USER['groups'].append(ctd.EXAMPLE_ADMIN_GROUP_ID) with self.app.test_request_context(): attract_project = setup_for_attract(project['url'], diff --git a/tests/test_shots.py b/tests/test_shots.py index d241cd3..03f7324 100644 --- a/tests/test_shots.py +++ b/tests/test_shots.py @@ -6,7 +6,6 @@ import responses from bson import ObjectId import pillarsdk -import pillarsdk.exceptions as sdk_exceptions import pillar.tests import pillar.auth import pillar.tests.common_test_data as ctd @@ -28,7 +27,7 @@ class AbstractShotTest(AbstractAttractTest): def create_task(self, shot_id, task_type): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() task = self.tmngr.create_task(self.sdk_project, parent=shot_id, task_type=task_type) @@ -39,7 +38,7 @@ class AbstractShotTest(AbstractAttractTest): def create_shot(self): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() shot = self.smngr.create_shot(self.sdk_project) @@ -67,7 +66,7 @@ class ShotManagerTest(AbstractShotTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() shot_id_to_task = self.smngr.tasks_for_nodes([shot1, shot2], @@ -96,7 +95,7 @@ class ShotManagerTest(AbstractShotTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() @@ -134,7 +133,7 @@ class ShotManagerTest(AbstractShotTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() for shot, status in zip([shot1, shot2, shot3, shot4], diff --git a/tests/test_subversion.py b/tests/test_subversion.py index 42a22ee..c51fead 100644 --- a/tests/test_subversion.py +++ b/tests/test_subversion.py @@ -14,8 +14,6 @@ import responses import svn.common import pillarsdk -import pillar -import pillar.tests.common_test_data as ctd import logging_config from abstract_attract_test import AbstractAttractTest @@ -246,14 +244,18 @@ class SvnTaskLoggedTest(AbstractAttractTest): def setUp(self, **kwargs): AbstractAttractTest.setUp(self, **kwargs) + import pillar.tests + self.mngr = self.attract.task_manager self.proj_id, self.project = self.ensure_project_exists() self.sdk_project = pillarsdk.Project(pillar.tests.mongo_to_sdk(self.project)) def create_task(self, task_type=None): + import pillar.tests.common_test_data as ctd + with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) self.mock_blenderid_validate_happy() sdk_task = self.mngr.create_task(self.sdk_project, task_type=task_type) diff --git a/tests/test_tasks.py b/tests/test_tasks.py index b4d8456..6deb97d 100644 --- a/tests/test_tasks.py +++ b/tests/test_tasks.py @@ -5,17 +5,18 @@ from bson import ObjectId import pillarsdk import pillarsdk.exceptions as sdk_exceptions -import pillar.tests +from pillarsdk.utils import remove_private_keys import pillar.tests.common_test_data as ctd from abstract_attract_test import AbstractAttractTest -from pillarsdk.utils import remove_private_keys class TaskWorkflowTest(AbstractAttractTest): def setUp(self, **kwargs): AbstractAttractTest.setUp(self, **kwargs) + import pillar.tests + self.mngr = self.attract.task_manager self.proj_id, self.project = self.ensure_project_exists() @@ -24,7 +25,7 @@ class TaskWorkflowTest(AbstractAttractTest): def create_task(self, task_type=None, parent=None): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_as_admin() self.mock_blenderid_validate_happy() task = self.mngr.create_task(self.sdk_project, task_type=task_type, parent=parent) @@ -32,6 +33,9 @@ class TaskWorkflowTest(AbstractAttractTest): self.assertIsInstance(task, pillarsdk.Node) return task + def login_as_admin(self): + self.login_api_as(ctd.EXAMPLE_PROJECT_OWNER_ID) + @responses.activate def test_create_task(self): task = self.create_task(task_type='Just düüüh it') @@ -55,7 +59,7 @@ class TaskWorkflowTest(AbstractAttractTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_as_admin() self.mock_blenderid_validate_happy() self.assertRaises(sdk_exceptions.PreconditionFailed, @@ -93,7 +97,7 @@ class TaskWorkflowTest(AbstractAttractTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_as_admin() self.mock_blenderid_validate_happy() self.mngr.edit_task(task._id, @@ -141,7 +145,7 @@ class TaskWorkflowTest(AbstractAttractTest): with self.app.test_request_context(): # Log in as project admin user - pillar.auth.login_user(ctd.EXAMPLE_PROJECT_OWNER_ID) + self.login_as_admin() self.mock_blenderid_validate_happy() self.assertRaises(sdk_exceptions.PreconditionFailed, @@ -162,6 +166,7 @@ class TaskWorkflowTest(AbstractAttractTest): @responses.activate def test_delete_task_nonadmin(self): from pillar.api.projects.utils import get_admin_group_id + import pillar.auth from attract.tasks import routes self.enter_app_context() @@ -195,6 +200,7 @@ class TaskWorkflowTest(AbstractAttractTest): @responses.activate def test_delete_task_nonmember(self): from attract.tasks import routes + import pillar.auth self.enter_app_context()