# -*- 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'))