From bce033e3fd32cc89eed5cf0244a1f20caaedeb20 Mon Sep 17 00:00:00 2001 From: John Davis Date: Fri, 21 Jul 2023 05:11:56 -0400 Subject: [PATCH] Fix SA20 syntax in test_vault_file_source, refactor --- test/integration/test_vault_file_source.py | 50 ++++++++-------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/test/integration/test_vault_file_source.py b/test/integration/test_vault_file_source.py index 32654d98c3f..ab6295058ff 100644 --- a/test/integration/test_vault_file_source.py +++ b/test/integration/test_vault_file_source.py @@ -1,6 +1,8 @@ import os import tempfile +from sqlalchemy import select + from galaxy.security.vault import UserVaultWrapper from galaxy_test.base import api_asserts from galaxy_test.base.populators import DatasetPopulator @@ -31,14 +33,11 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ This file source performs a user vault lookup. The secret stored for the first user is a valid path and should succeed, while the second user's stored secret should fail. """ + app = self._app + with self._different_user(email=self.USER_1_APP_VAULT_ENTRY): - app = self._app - user = ( - app.model.context.query(app.model.User) - .filter(app.model.User.email == self.USER_1_APP_VAULT_ENTRY) - .first() - ) - user_vault = UserVaultWrapper(self._app.vault, user) + user = self._get_user_by_email(self.USER_1_APP_VAULT_ENTRY) + user_vault = UserVaultWrapper(app.vault, user) # use a valid symlink path so the posix list succeeds user_vault.write_secret("posix/root_path", app.config.user_library_import_symlink_allowlist[0]) @@ -49,13 +48,8 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ print(remote_files) with self._different_user(email=self.USER_2_APP_VAULT_ENTRY): - app = self._app - user = ( - app.model.context.query(app.model.User) - .filter(app.model.User.email == self.USER_2_APP_VAULT_ENTRY) - .first() - ) - user_vault = UserVaultWrapper(self._app.vault, user) + user = self._get_user_by_email(self.USER_2_APP_VAULT_ENTRY) + user_vault = UserVaultWrapper(app.vault, user) # use an invalid symlink path so the posix list fails user_vault.write_secret("posix/root_path", "/invalid/root") @@ -75,12 +69,8 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ app.vault.write_secret("posix/root_path", app.config.user_library_import_symlink_allowlist[0]) with self._different_user(email=self.USER_1_APP_VAULT_ENTRY): - user = ( - app.model.context.query(app.model.User) - .filter(app.model.User.email == self.USER_1_APP_VAULT_ENTRY) - .first() - ) - user_vault = UserVaultWrapper(self._app.vault, user) + user = self._get_user_by_email(self.USER_1_APP_VAULT_ENTRY) + user_vault = UserVaultWrapper(app.vault, user) # use a valid symlink path so the posix list succeeds user_vault.write_secret("posix/root_path", app.config.user_library_import_symlink_allowlist[0]) @@ -91,12 +81,8 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ print(remote_files) with self._different_user(email=self.USER_2_APP_VAULT_ENTRY): - user = ( - app.model.context.query(app.model.User) - .filter(app.model.User.email == self.USER_2_APP_VAULT_ENTRY) - .first() - ) - user_vault = UserVaultWrapper(self._app.vault, user) + user = self._get_user_by_email(self.USER_2_APP_VAULT_ENTRY) + user_vault = UserVaultWrapper(app.vault, user) # use an invalid symlink path so the posix list would fail if used user_vault.write_secret("posix/root_path", "/invalid/root") @@ -109,12 +95,8 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ def test_upload_file_from_remote_source(self): with self._different_user(email=self.USER_1_APP_VAULT_ENTRY): app = self._app - user = ( - app.model.context.query(app.model.User) - .filter(app.model.User.email == self.USER_1_APP_VAULT_ENTRY) - .first() - ) - user_vault = UserVaultWrapper(self._app.vault, user) + user = self._get_user_by_email(self.USER_1_APP_VAULT_ENTRY) + user_vault = UserVaultWrapper(app.vault, user) # use a valid symlink path so the posix list succeeds user_vault.write_secret("posix/root_path", app.config.user_library_import_symlink_allowlist[0]) data = {"target": "gxfiles://test_user_vault"} @@ -138,3 +120,7 @@ class TestVaultFileSourceIntegration(integration_util.IntegrationTestCase, integ new_dataset = self.dataset_populator.fetch(payload, assert_ok=True).json()["outputs"][0] content = self.dataset_populator.get_history_dataset_content(history_id, dataset=new_dataset) assert content == "I require access to the vault", content + + def _get_user_by_email(self, email): + stmt = select(self._app.model.User).filter(self._app.model.User.email == email).limit(1) + return self._app.model.session.scalars(stmt).first()