# -*- coding: utf-8 -*- # Import python libs from __future__ import absolute_import # Import Salt Libs from salt import acl # Import Salt Testing Libs from tests.support.unit import TestCase class ClientACLTestCase(TestCase): """ Unit tests for salt.acl.ClientACL """ def setUp(self): self.blacklist = { "users": ["joker", "penguin", "*bad_*", "blocked_.*", "^Homer$"], "modules": ["cmd.run", "test.fib", "rm-rf.*"], } self.whitelist = { "users": ["testuser", "saltuser"], "modules": ["test.ping", "grains.items"], } def tearDown(self): del self.blacklist del self.whitelist def test_user_is_blacklisted(self): """ test user_is_blacklisted """ client_acl = acl.PublisherACL(self.blacklist) self.assertTrue(client_acl.user_is_blacklisted("joker")) self.assertTrue(client_acl.user_is_blacklisted("penguin")) self.assertTrue(client_acl.user_is_blacklisted("bad_")) self.assertTrue(client_acl.user_is_blacklisted("bad_user")) self.assertTrue(client_acl.user_is_blacklisted("bad_*")) self.assertTrue(client_acl.user_is_blacklisted("user_bad_")) self.assertTrue(client_acl.user_is_blacklisted("blocked_")) self.assertTrue(client_acl.user_is_blacklisted("blocked_user")) self.assertTrue(client_acl.user_is_blacklisted("blocked_.*")) self.assertTrue(client_acl.user_is_blacklisted("Homer")) self.assertFalse(client_acl.user_is_blacklisted("batman")) self.assertFalse(client_acl.user_is_blacklisted("robin")) self.assertFalse(client_acl.user_is_blacklisted("bad")) self.assertFalse(client_acl.user_is_blacklisted("blocked")) self.assertFalse(client_acl.user_is_blacklisted("NotHomer")) self.assertFalse(client_acl.user_is_blacklisted("HomerSimpson")) def test_cmd_is_blacklisted(self): """ test cmd_is_blacklisted """ client_acl = acl.PublisherACL(self.blacklist) self.assertTrue(client_acl.cmd_is_blacklisted("cmd.run")) self.assertTrue(client_acl.cmd_is_blacklisted("test.fib")) self.assertTrue(client_acl.cmd_is_blacklisted("rm-rf.root")) self.assertFalse(client_acl.cmd_is_blacklisted("cmd.shell")) self.assertFalse(client_acl.cmd_is_blacklisted("test.versions")) self.assertFalse(client_acl.cmd_is_blacklisted("arm-rf.root")) self.assertTrue(client_acl.cmd_is_blacklisted(["cmd.run", "state.sls"])) self.assertFalse( client_acl.cmd_is_blacklisted(["state.highstate", "state.sls"]) ) def test_user_is_whitelisted(self): """ test user_is_whitelisted """ client_acl = acl.PublisherACL(self.whitelist) self.assertTrue(client_acl.user_is_whitelisted("testuser")) self.assertTrue(client_acl.user_is_whitelisted("saltuser")) self.assertFalse(client_acl.user_is_whitelisted("three")) self.assertFalse(client_acl.user_is_whitelisted("hans")) def test_cmd_is_whitelisted(self): """ test cmd_is_whitelisted """ client_acl = acl.PublisherACL(self.whitelist) self.assertTrue(client_acl.cmd_is_whitelisted("test.ping")) self.assertTrue(client_acl.cmd_is_whitelisted("grains.items")) self.assertFalse(client_acl.cmd_is_whitelisted("cmd.run")) self.assertFalse(client_acl.cmd_is_whitelisted("test.version"))