def test_connect(self): mock_pymysql = Mock() with patch.dict('sys.modules', pymysql=mock_pymysql): mock_pymysql.connect.return_value = 'OK' mysql = MySQLDatabase( database='test_database', host='test_host', port=1234, user='******', password='******', read_timeout=180, ) mysql.connect() mock_pymysql.connect.assert_called_once_with( host='test_host', port=1234, db='test_database', charset='utf8mb4', user='******', password='******', read_timeout=180, cursorclass=ANY, )
def test_connect(self, mock_connection_class): mock_pymysql = Mock() with patch.dict('sys.modules', pymysql=mock_pymysql): mock_pymysql.connect.return_value = 'OK' mysql = MySQLDatabase(database='test_database', host='test_host', port=1234, user='******', password='******') mysql.connect() mock_connection_class.return_value.assert_called_once_with( host='test_host', port=1234, db='test_database', charset='utf8mb4', user='******', password='******', cursorclass=ANY )
def test_import_csv(self, mock_execute): MySQLDatabase().import_csv('abc', '/path/to/file') mock_execute.assert_called_once_with( 'LOAD DATA LOCAL INFILE \'/path/to/file\' INTO TABLE `abc` FIELDS TERMINATED BY \',\'', connection=None )
def test_defaults(self): mysql = MySQLDatabase(database='testdb') self.assertEqual('localhost', mysql.host) self.assertEqual(3306, mysql.port) self.assertEqual('utf8mb4', mysql.charset) self.assertIsNone(mysql.user) self.assertIsNone(mysql.password)
def test_create_temporary_table_from_select(self, mock_execute): query = MySQLQuery.from_('abc').select('*') MySQLDatabase().create_temporary_table_from_select('def', query) mock_execute.assert_called_once_with( 'CREATE TEMPORARY TABLE "def" AS (SELECT * FROM "abc")', connection=None, )
def test_create_temporary_table_from_columns(self, mock_execute): columns = PypikaColumn('a', 'varchar'), PypikaColumn('b', 'varchar(100)') MySQLDatabase().create_temporary_table_from_columns('abc', columns) mock_execute.assert_called_once_with( 'CREATE TEMPORARY TABLE "abc" ("a" varchar,"b" varchar(100))', connection=None)
def test_get_column_definitions(self, mock_fetch): MySQLDatabase().get_column_definitions('test_schema', 'test_table') mock_fetch.assert_called_once_with( 'SELECT DISTINCT `column_name`,`column_type` ' 'FROM `INFORMATION_SCHEMA`.`columns` ' 'WHERE `table_schema`=\'test_schema\' AND `table_name`=\'test_table\' ' 'ORDER BY `column_name`', connection=None )
def test_date_add_month(self): result = MySQLDatabase(database='testdb').date_add( 'month', 1, Field('date')) self.assertEqual('DATE_ADD("date",INTERVAL 1 MONTH)', str(result))
def test_date_add_week(self): result = MySQLDatabase(database='testdb').date_add( 'week', 1, Field('date')) self.assertEqual('DATE_ADD("date",INTERVAL 1 WEEK)', str(result))
def test_date_add_hour(self): result = MySQLDatabase(database='testdb').date_add( 'hour', 1, Field('date')) self.assertEqual('DATE_ADD("date",INTERVAL 1 HOUR)', str(result))
def test_trunc_year(self): result = MySQLDatabase(database='testdb').trunc_date( Field('date'), 'year') self.assertEqual('dashmore.TRUNC("date",\'year\')', str(result))
def setUpClass(cls): cls.mysql = MySQLDatabase(database='testdb')
def test_to_char(self): db = MySQLDatabase() to_char = db.to_char(Field('field')) self.assertEqual('CAST("field" AS CHAR)', str(to_char))
def test_to_char(self): db = MySQLDatabase() to_char = db.to_char(Field('field')) self.assertEqual(str(to_char), 'CAST("field" AS CHAR)')
def setUpClass(cls): cls.mysql = MySQLDatabase(database='mysql') cls.vertica = VerticaDatabase() cls.db_cols = [['a', 'nvarchar'], ['b', 'varchar(100)']] cls.ansi_cols = [Column('a', VarChar()), Column('b', VarChar(100))]