def test_action_base_sudo_only_if_user_differs(self): fake_loader = MagicMock() fake_loader.get_basedir.return_value = os.getcwd() play_context = PlayContext() action_base = DerivedActionBase(None, None, play_context, fake_loader, None, None) action_base._connection = MagicMock(exec_command=MagicMock(return_value=(0, '', ''))) action_base._connection._shell = MagicMock(append_command=MagicMock(return_value=('JOINED CMD'))) play_context.become = True play_context.become_user = play_context.remote_user = '******' play_context.make_become_cmd = MagicMock(return_value='CMD') action_base._low_level_execute_command('ECHO', sudoable=True) play_context.make_become_cmd.assert_not_called() play_context.remote_user = '******' action_base._low_level_execute_command('ECHO', sudoable=True, executable='/bin/csh') play_context.make_become_cmd.assert_called_once_with("ECHO", executable='/bin/csh') play_context.make_become_cmd.reset_mock() become_allow_same_user = C.BECOME_ALLOW_SAME_USER C.BECOME_ALLOW_SAME_USER = True try: play_context.remote_user = '******' action_base._low_level_execute_command('ECHO SAME', sudoable=True) play_context.make_become_cmd.assert_called_once_with("ECHO SAME", executable=None) finally: C.BECOME_ALLOW_SAME_USER = become_allow_same_user
def test_action_base_sudo_only_if_user_differs(self): play_context = PlayContext() action_base = DerivedActionBase(None, None, play_context, None, None, None) action_base._connection = MagicMock(exec_command=MagicMock( return_value=(0, '', ''))) play_context.become = True play_context.become_user = play_context.remote_user = '******' play_context.make_become_cmd = MagicMock(return_value='CMD') action_base._low_level_execute_command('ECHO', sudoable=True) play_context.make_become_cmd.assert_not_called() play_context.remote_user = '******' action_base._low_level_execute_command('ECHO', sudoable=True, executable='/bin/csh') play_context.make_become_cmd.assert_called_once_with( "ECHO", executable='/bin/csh') play_context.make_become_cmd.reset_mock() become_allow_same_user = C.BECOME_ALLOW_SAME_USER C.BECOME_ALLOW_SAME_USER = True try: play_context.remote_user = '******' action_base._low_level_execute_command('ECHO SAME', sudoable=True) play_context.make_become_cmd.assert_called_once_with( "ECHO SAME", executable=None) finally: C.BECOME_ALLOW_SAME_USER = become_allow_same_user
def test_sudo_only_if_user_differs(self): play_context = PlayContext() action_base = ActionBase(None, None, play_context, None, None, None) action_base._connection = Mock(exec_command=Mock(return_value=(0, '', ''))) play_context.become = True play_context.become_user = play_context.remote_user = '******' play_context.make_become_cmd = Mock(return_value='CMD') action_base._low_level_execute_command('ECHO', sudoable=True) play_context.make_become_cmd.assert_not_called() play_context.remote_user = '******' action_base._low_level_execute_command('ECHO', sudoable=True) play_context.make_become_cmd.assert_called_once_with('ECHO', executable=None) play_context.make_become_cmd.reset_mock() become_allow_same_user = C.BECOME_ALLOW_SAME_USER C.BECOME_ALLOW_SAME_USER = True try: play_context.remote_user = '******' action_base._low_level_execute_command('ECHO SAME', sudoable=True) play_context.make_become_cmd.assert_called_once_with('ECHO SAME', executable=None) finally: C.BECOME_ALLOW_SAME_USER = become_allow_same_user
def test_libssh_connect(self, mocked_super, mock_session): pc = PlayContext() pc.remote_addr = "localhost" pc.password = "******" pc.port = 8080 pc.timeout = 60 pc.remote_user = "******" conn = connection_loader.get( "ansible.netcommon.libssh", pc, "/dev/null" ) conn.ssh = mock_session mock_connect = MagicMock() conn.ssh.connect = mock_connect conn._connect() conn.ssh.connect.assert_called_with( host="localhost", host_key_checking=False, look_for_keys=True, password="******", port=8080, timeout=60, user="******", )
def get_play_context(self): play_context = PlayContext(play=None, options=None, passwords=self._passwords) play_context.remote_addr = self.addr play_context.port = self.port play_context.remote_user = self.user play_context.ssh_executable = 'ssh' play_context.timeout = 10 play_context.connection = 'ssh' play_context.become = self.sudo play_context.become_method = 'sudo' play_context.become_user = '******' return play_context