def test_no_slave_new_master(self, mock_inst, mock_cfg, mock_slv):
        """Function:  test_no_slave_new_master

        Description:  Test with no new & slave master connection.

        Arguments:

        """

        self.master.conn = False
        self.master.conn_msg = self.err_msg3
        self.slave.conn = False
        self.slave.conn_msg = self.err_msg3

        mock_inst.return_value = self.master
        mock_cfg.return_value = self.cfg
        mock_slv.return_value = self.slave

        with gen_libs.no_std_out():
            self.assertEqual(
                mysql_rep_change.move_slave_up(self.master,
                                               self.slaves,
                                               args=self.args,
                                               new_mst=self.new_mst),
                (True, self.err_msg4))
    def test_fetch_slv_fails(self, mock_fetch):
        """Function:  test_fetch_slv_fails

        Description:  Test with fetching slave fails.

        Arguments:

        """

        mock_fetch.return_value = (None, True, self.err_msg)

        self.assertEqual(
            mysql_rep_change.move_slave_up(self.master,
                                           self.slaves,
                                           args=self.args),
            (True, self.err_msg))
    def test_sync_slave_fails(self, mock_sync, mock_inst, mock_cfg, mock_slv):
        """Function:  test_sync_slave_fails

        Description:  Test with sync up of slave fails.

        Arguments:

        """

        mock_sync.return_value = (True, self.err_msg)
        mock_inst.return_value = self.master
        mock_cfg.return_value = self.cfg
        mock_slv.return_value = self.slave

        self.assertEqual(
            mysql_rep_change.move_slave_up(self.master,
                                           self.slaves,
                                           args=self.args,
                                           new_mst=self.new_mst),
            (True, self.err_msg))
    def test_find_slave_fails(self, mock_sync, mock_inst, mock_cfg, mock_slv):
        """Function:  test_find_slave_fails

        Description:  Test with find of slave fails.

        Arguments:

        """

        mock_sync.side_effect = [(False, None), (True, self.err_msg2)]
        mock_inst.return_value = self.master
        mock_cfg.return_value = self.cfg
        mock_slv.return_value = self.slave

        self.assertEqual(
            mysql_rep_change.move_slave_up(self.master,
                                           self.slaves,
                                           args=self.args,
                                           new_mst=self.new_mst),
            (True, self.err_msg2))
    def test_slave_moved(self, mock_sync, mock_inst, mock_cfg, mock_slv):
        """Function:  test_slave_moved

        Description:  Test with slave moved up.

        Arguments:

        """

        mock_sync.side_effect = [(False, None), (False, None)]
        mock_inst.return_value = self.master
        mock_cfg.return_value = self.cfg
        mock_slv.return_value = self.slave

        self.assertEqual(
            mysql_rep_change.move_slave_up(self.master,
                                           self.slaves,
                                           args=self.args,
                                           new_mst=self.new_mst),
            (False, None))