def test_basic(self): try: # start mysql server mysqld = testing.mysqld.Mysqld(my_cnf={'skip-networking': None}) self.assertIsNotNone(mysqld) self.assertEqual(mysqld.dsn(), dict(unix_socket=mysqld.base_dir + '/tmp/mysql.sock', user='******', db='test')) # connect to mysql (w/ pymysql) conn = pymysql.connect(**mysqld.dsn()) self.assertIsNotNone(conn) self.assertRegexpMatches(mysqld.read_bootlog(), 'ready for connections') # connect to mysql (w/ sqlalchemy) engine = sqlalchemy.create_engine(mysqld.url()) self.assertIsNotNone(engine) # shutting down pid = mysqld.server_pid self.assertTrue(os.path.exists(mysqld.base_dir + '/tmp/mysql.sock')) self.assertTrue(mysqld.is_alive()) finally: mysqld.stop() sleep(1) self.assertFalse(os.path.exists(mysqld.base_dir + '/tmp/mysql.sock')) self.assertFalse(mysqld.is_alive()) with self.assertRaises(OSError): os.kill(pid, 0) # process is down
def test_basic(self): try: # start mysql server mysqld = testing.mysqld.Mysqld(my_cnf={'skip-networking': None}) self.assertIsNotNone(mysqld) self.assertEqual( mysqld.dsn(), dict(unix_socket=mysqld.base_dir + '/tmp/mysql.sock', user='******', db='test')) # connect to mysql (w/ pymysql) conn = pymysql.connect(**mysqld.dsn()) self.assertIsNotNone(conn) self.assertRegexpMatches(mysqld.read_bootlog(), 'ready for connections') # connect to mysql (w/ sqlalchemy) engine = sqlalchemy.create_engine(mysqld.url()) self.assertIsNotNone(engine) # shutting down pid = mysqld.server_pid self.assertTrue(os.path.exists(mysqld.base_dir + '/tmp/mysql.sock')) self.assertTrue(mysqld.is_alive()) finally: mysqld.stop() sleep(1) self.assertFalse( os.path.exists(mysqld.base_dir + '/tmp/mysql.sock')) self.assertFalse(mysqld.is_alive()) with self.assertRaises(OSError): os.kill(pid, 0) # process is down
def test_dsn_and_url(self): mysqld = testing.mysqld.Mysqld(auto_start=0) self.assertEqual( { 'db': 'test', 'unix_socket': mysqld.my_cnf['socket'], 'user': '******' }, mysqld.dsn()) self.assertEqual( "mysql+pymysql://root@localhost/test?unix_socket=%s" % mysqld.my_cnf['socket'], mysqld.url()) self.assertEqual( "mysql+pymysql://root@localhost/test?unix_socket=%s&charset=utf8" % mysqld.my_cnf['socket'], mysqld.url(charset='utf8')) self.assertEqual( "mysql+mysqldb://root@localhost/test?unix_socket=%s" % mysqld.my_cnf['socket'], mysqld.url(driver='mysqldb')) mysqld = testing.mysqld.Mysqld(my_cnf={'port': 12345}, auto_start=0) self.assertEqual( { 'db': 'test', 'host': '127.0.0.1', 'port': 12345, 'user': '******' }, mysqld.dsn()) self.assertEqual("mysql+pymysql://[email protected]:12345/test", mysqld.url()) self.assertEqual( "mysql+pymysql://[email protected]:12345/test?charset=utf8", mysqld.url(charset='utf8')) self.assertEqual("mysql+mysqldb://[email protected]:12345/test", mysqld.url(driver='mysqldb'))
def test_dsn_and_url(self): mysqld = testing.mysqld.Mysqld(auto_start=0) self.assertEqual({'db': 'test', 'unix_socket': mysqld.my_cnf['socket'], 'user': '******'}, mysqld.dsn()) self.assertEqual("mysql+pymysql://root@localhost/test?unix_socket=%s" % mysqld.my_cnf['socket'], mysqld.url()) self.assertEqual("mysql+pymysql://root@localhost/test?unix_socket=%s&charset=utf8" % mysqld.my_cnf['socket'], mysqld.url(charset='utf8')) self.assertEqual("mysql+mysqldb://root@localhost/test?unix_socket=%s" % mysqld.my_cnf['socket'], mysqld.url(driver='mysqldb')) mysqld = testing.mysqld.Mysqld(my_cnf={'port': 12345}, auto_start=0) self.assertEqual({'db': 'test', 'host': '127.0.0.1', 'port': 12345, 'user': '******'}, mysqld.dsn()) self.assertEqual("mysql+pymysql://[email protected]:12345/test", mysqld.url()) self.assertEqual("mysql+pymysql://[email protected]:12345/test?charset=utf8", mysqld.url(charset='utf8')) self.assertEqual("mysql+mysqldb://[email protected]:12345/test", mysqld.url(driver='mysqldb'))