"""Integration tests for user config options.""" from galaxy_test.driver import integration_util class _BaseUserExposeIntegrationTestCase(integration_util.IntegrationTestCase): def original_user_ids(self): return [u["id"] for u in self.galaxy_interactor.get("users").json()] def new_users(self, original_ids): users = [u for u in self.galaxy_interactor.get("users").json() if u["id"] not in original_ids] return users class TestDefaultUserExposeIntegration(_BaseUserExposeIntegrationTestCase): def test_defaults(self): original_user_ids = self.original_user_ids() self.galaxy_interactor.ensure_user_with_email("defaultuserexposetest@galaxyproject.org") new_users = self.new_users(original_user_ids) # If expose username or expose email isn't enabled - user indexing is # empty by default for non-admin users. assert len(new_users) == 0 class TestEmailUserExposeIntegration(_BaseUserExposeIntegrationTestCase): @classmethod def handle_galaxy_config_kwds(cls, config): super().handle_galaxy_config_kwds(config) config["expose_user_email"] = True def test_only_email_exposed(self): original_user_ids = self.original_user_ids() self.galaxy_interactor.ensure_user_with_email("emailuserexposetest@galaxyproject.org") new_users = self.new_users(original_user_ids) assert len(new_users) > 0 user = new_users[0] assert "email" in user assert "username" not in user assert "last_password_change" not in user class TestUsernameUserExposeIntegration(_BaseUserExposeIntegrationTestCase): @classmethod def handle_galaxy_config_kwds(cls, config): super().handle_galaxy_config_kwds(config) config["expose_user_name"] = True def test_only_username_exposed(self): original_user_ids = self.original_user_ids() self.galaxy_interactor.ensure_user_with_email("usernameuserexposetest@galaxyproject.org") new_users = self.new_users(original_user_ids) assert len(new_users) > 0 user = new_users[0] assert "email" not in user assert "username" in user assert "last_password_change" not in user