def test_user_argument(self): # User is the same as logged user, no sudo should be used kwargs = copy.deepcopy(self._base_kwargs) kwargs['sudo'] = False kwargs['user'] = LOGGED_USER_USERNAME action = ShellScriptAction(**kwargs) command = action.get_full_command_string() self.assertEqual(command, '/tmp/foo.sh') # User is different, sudo should be used kwargs = copy.deepcopy(self._base_kwargs) kwargs['sudo'] = False kwargs['user'] = '******' action = ShellScriptAction(**kwargs) command = action.get_full_command_string() self.assertEqual(command, 'sudo -E -H -u mauser -- bash -c /tmp/foo.sh') # sudo with password kwargs = copy.deepcopy(self._base_kwargs) kwargs['sudo'] = False kwargs['user'] = '******' kwargs['sudo_password'] = '******' action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = 'sudo -S -E -H -u mauser -- bash -c /tmp/foo.sh' self.assertEqual(command, expected_command) # complex sudo password which needs escaping kwargs = copy.deepcopy(self._base_kwargs) kwargs['sudo'] = False kwargs['user'] = '******' kwargs['sudo_password'] = '******'as"sss' action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = ('sudo -S -E -H ' '-u mauser -- bash -c /tmp/foo.sh') self.assertEqual(command, expected_command) command = action.get_sanitized_full_command_string() expected_command = ('echo -e \'%s\n\' | sudo -S -E -H ' '-u mauser -- bash -c /tmp/foo.sh' % (MASKED_ATTRIBUTE_VALUE)) self.assertEqual(command, expected_command) # sudo is used, it doesn't matter what user is specified since the # command should run as root kwargs = copy.deepcopy(self._base_kwargs) kwargs['sudo'] = True kwargs['user'] = '******' kwargs['sudo_password'] = '******' action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = 'sudo -S -E -- bash -c /tmp/foo.sh' self.assertEqual(command, expected_command)
def test_user_argument(self): # User is the same as logged user, no sudo should be used kwargs = copy.deepcopy(self._base_kwargs) kwargs["sudo"] = False kwargs["user"] = LOGGED_USER_USERNAME action = ShellScriptAction(**kwargs) command = action.get_full_command_string() self.assertEqual(command, "/tmp/foo.sh") # User is different, sudo should be used kwargs = copy.deepcopy(self._base_kwargs) kwargs["sudo"] = False kwargs["user"] = "******" action = ShellScriptAction(**kwargs) command = action.get_full_command_string() self.assertEqual(command, "sudo -E -H -u mauser -- bash -c /tmp/foo.sh") # sudo with password kwargs = copy.deepcopy(self._base_kwargs) kwargs["sudo"] = False kwargs["user"] = "******" kwargs["sudo_password"] = "******" action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = "sudo -S -E -H -u mauser -- bash -c /tmp/foo.sh" self.assertEqual(command, expected_command) # complex sudo password which needs escaping kwargs = copy.deepcopy(self._base_kwargs) kwargs["sudo"] = False kwargs["user"] = "******" kwargs["sudo_password"] = "******"sss" action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = "sudo -S -E -H " "-u mauser -- bash -c /tmp/foo.sh" self.assertEqual(command, expected_command) command = action.get_sanitized_full_command_string() expected_command = ("echo -e '%s\n' | sudo -S -E -H " "-u mauser -- bash -c /tmp/foo.sh" % (MASKED_ATTRIBUTE_VALUE)) self.assertEqual(command, expected_command) # sudo is used, it doesn't matter what user is specified since the # command should run as root kwargs = copy.deepcopy(self._base_kwargs) kwargs["sudo"] = True kwargs["user"] = "******" kwargs["sudo_password"] = "******" action = ShellScriptAction(**kwargs) command = action.get_full_command_string() expected_command = "sudo -S -E -- bash -c /tmp/foo.sh" self.assertEqual(command, expected_command)