def setUp(self): """Function: setUp Description: Initialization for unit testing. Arguments: """ self.base_dir = "test/integration" self.config_dir = os.path.join(self.base_dir, "config") self.config_name = "slave_mysql_cfg" self.cfg = gen_libs.load_module(self.config_name, self.config_dir) self.svr = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=getattr( machine, self.cfg.serv_os)(), host=self.cfg.host, port=self.cfg.port, defaults_file=self.cfg.cfg_file) self.svr2 = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, "testmenopwd", os_type=getattr( machine, self.cfg.serv_os)(), host=self.cfg.host, port=self.cfg.port, defaults_file=self.cfg.cfg_file) self.err_msg = "Couldn't connect to database. MySQL error 1045:"
def create_slv_array(cfg_array, add_down=True): """Function: create_slv_array Description: Creates an array of instances from a configuration array. Arguments: (input) cfg_array -> List of configurations. (input) add_down -> True|False - Add any down slaves to the array. (output) slaves -> List of slave replication instances. """ cfg_array = list(cfg_array) slaves = [] for slv in cfg_array: slv_inst = mysql_class.SlaveRep(slv["name"], slv["sid"], slv["user"], slv["japd"], os_type=getattr( machine, slv["serv_os"])(), host=slv["host"], port=int(slv["port"]), defaults_file=slv["cfg_file"], rep_user=slv.get("rep_user", None), rep_japd=slv.get("rep_japd", None)) slv_inst.connect() if add_down or slv_inst.conn: slaves.append(slv_inst) return slaves
def test_int_skipcounter(self, mock_stat, mock_global, mock_var): """Function: test_int_skipcounter Description: Test integer for Skip_Counter. Arguments: """ self.show_stat[0]["Skip_Counter"] = 1 mock_var.return_value = {"read_only": "ON"} mock_global.side_effect = self.fetch_vars mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.version = self.version mysqlrep.upd_slv_status() self.assertEqual(mysqlrep.skip_ctr, 1)
def test_none_secsbehind(self, mock_stat, mock_global, mock_var): """Function: test_none_secsbehind Description: Test None for Seconds_Behind_Master. Arguments: """ self.show_stat[0]["Seconds_Behind_Master"] = None mock_var.return_value = {"read_only": "ON"} mock_global.side_effect = self.fetch_vars mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.version = self.version mysqlrep.upd_slv_status() self.assertEqual(mysqlrep.secs_behind, None)
def test_string_masterserverid(self, mock_stat, mock_global, mock_var): """Function: test_string_masterserverid Description: Test string for Master_Server_Id. Arguments: """ self.show_stat[0]["Master_Server_Id"] = "11" mock_var.return_value = {"read_only": "ON"} mock_global.side_effect = self.fetch_vars mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.version = self.version mysqlrep.upd_slv_status() self.assertEqual(mysqlrep.mst_id, 11)
def test_string_lastioerror(self, mock_stat, mock_global, mock_var): """Function: test_string_lastioerror Description: Test string for Last_IO_Errno. Arguments: """ self.show_stat[0]["Last_IO_Errno"] = "1" mock_var.return_value = {"read_only": "ON"} mock_global.side_effect = self.fetch_vars mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.version = self.version mysqlrep.upd_slv_status() self.assertEqual(mysqlrep.io_err, 1)
def setUp(self): """Function: setUp Description: Initialization for unit testing. Arguments: """ self.name = "Mysql_Server" self.server_id = 10 self.sql_user = "******" self.sql_pass = "******" self.machine = getattr(machine, "Linux")() self.host = "host_server" self.port = 3307 self.defaults_file = "def_cfg_file" self.extra_def_file = "extra_cfg_file" self.mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine, defaults_file=self.defaults_file)
def test_value(self, mock_stat, mock_global, mock_var): """Function: test_value Description: Test with values returned. Arguments: """ mock_var.return_value = {"read_only": "ON"} mock_global.side_effect = self.fetch_vars mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.version = self.version mysqlrep.upd_slv_status() self.assertEqual((mysqlrep.io_state, mysqlrep.slv_io, mysqlrep.slv_sql, mysqlrep.auto_pos), ("up", "running", "sqlcode", "autopos"))
def test_ssl_verify_id(self): """Function: test_ssl_verify_id Description: Test with ssl_verify_id attribute. Arguments: """ mysqldb = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=self.machine) self.assertEqual(mysqldb.ssl_verify_id, False)
def test_indb_buf_write(self): """Function: test_indb_buf_write Description: Test with indb_buf_write attribute. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.indb_buf_write, None)
def test_no_host(self): """Function: test_no_host Description: Test with no host arg. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.host, "localhost")
def test_ssl_disabled(self): """Function: test_ssl_disabled Description: Test with ssl_disabled attribute. Arguments: """ mysqldb = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqldb.ssl_disabled, False)
def test_default(self): """Function: test_default Description: Test fetch_ign_tbl method with no data. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) self.assertEqual(mysqlrep.fetch_ign_tbl(), [])
def test_no_port(self): """Function: test_no_port Description: Test with no port arg. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.port, 3306)
def test_version(self): """Function: test_version Description: Test with version attribute. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.version, None)
def test_ssl_client_ca(self): """Function: test_ssl_client_ca Description: Test with ssl_client_ca attribute. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.ssl_client_ca, None)
def test_default(self): """Function: test_default Description: Test get_others method. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) self.assertEqual(mysqlrep.get_others(), (None, None, None))
def test_no_default(self): """Function: test_no_default Description: Test with no default file. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.defaults_file, self.results)
def test_ssl_config(self): """Function: test_ssl_config Description: Test config with ssl attributes set. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine, ssl_client_ca="CAFile") self.assertEqual(mysqlrep.config, self.config2)
def test_no_rep_user(self): """Function: test_no_rep_user Description: Test with no replication user information passed. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine, defaults_file=self.defaults_file) self.assertEqual((mysqlrep.rep_user, mysqlrep.rep_japd), (None, None))
def test_ssl_client_key2(self): """Function: test_ssl_client_key2 Description: Test with ssl_client_key attribute. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine, ssl_client_key="KeyFile") self.assertEqual(mysqlrep.ssl_client_key, "KeyFile")
def test_ssl_client_flag(self): """Function: test_ssl_client_flag Description: Test with ssl_client_flag attribute. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine) self.assertEqual(mysqlrep.ssl_client_flag, mysql.connector.ClientFlag.SSL)
def test_ssl_verify_id2(self): """Function: test_ssl_verify_id2 Description: Test with ssl_verify_id attribute. Arguments: """ mysqldb = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, os_type=self.machine, ssl_verify_id=True) self.assertEqual(mysqldb.ssl_verify_id, True)
def test_ssl_disabled2(self): """Function: test_ssl_disabled2 Description: Test with ssl_disabled attribute. Arguments: """ mysqldb = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=self.machine, ssl_disabled=True) self.assertEqual(mysqldb.ssl_disabled, True)
def test_list(self): """Function: test_list Description: Test fetch_ign_tbl method with data. Arguments: """ mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.ign_tbl = "db1.tbl1,db2.tbl2,db3.tbl3" self.assertEqual(mysqlrep.fetch_ign_tbl(), {'db1': ['tbl1'], 'db3': ['tbl3'], 'db2': ['tbl2']})
def test_conn(self): """Function: test_conn Description: Test with conn attribute. Arguments: """ mysqldb = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=getattr(machine, self.cfg.serv_os)(), host=self.cfg.host) self.assertEqual(mysqldb.conn, None)
def test_no_port(self): """Function: test_no_port Description: Test with no port arg. Arguments: """ mysqldb = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=getattr(machine, self.cfg.serv_os)(), host=self.cfg.host) self.assertEqual(mysqldb.port, 3306)
def test_no_host(self): """Function: test_no_host Description: Test with no host arg. Arguments: """ mysqldb = mysql_class.SlaveRep(self.cfg.name, self.cfg.sid, self.cfg.user, self.cfg.japd, os_type=getattr(machine, self.cfg.serv_os)(), port=self.cfg.port) self.assertEqual(mysqldb.host, "localhost")
def test_except_secsbehind(self, mock_stat): """Function: test_except_secsbehind Description: Test raising exception for Seconds_Behind_Master. Arguments: """ mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.upd_slv_time() self.assertEqual(mysqlrep.secs_behind, 10)
def test_value(self, mock_stat): """Function: test_value Description: Test with values returned. Arguments: """ mock_stat.return_value = self.show_stat mysqlrep = mysql_class.SlaveRep(self.name, self.server_id, self.sql_user, self.sql_pass, self.machine, defaults_file=self.defaults_file) mysqlrep.upd_slv_time() self.assertEqual(mysqlrep.secs_behind, 10)