Ejemplo n.º 1
0
    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,
        )
Ejemplo n.º 2
0
    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
        )
Ejemplo n.º 3
0
    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
        )
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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,
        )
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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
        )
Ejemplo n.º 8
0
    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))
Ejemplo n.º 9
0
    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))
Ejemplo n.º 10
0
    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))
Ejemplo n.º 11
0
    def test_trunc_year(self):
        result = MySQLDatabase(database='testdb').trunc_date(
            Field('date'), 'year')

        self.assertEqual('dashmore.TRUNC("date",\'year\')', str(result))
Ejemplo n.º 12
0
 def setUpClass(cls):
     cls.mysql = MySQLDatabase(database='testdb')
Ejemplo n.º 13
0
    def test_to_char(self):
        db = MySQLDatabase()

        to_char = db.to_char(Field('field'))
        self.assertEqual('CAST("field" AS CHAR)', str(to_char))
Ejemplo n.º 14
0
    def test_to_char(self):
        db = MySQLDatabase()

        to_char = db.to_char(Field('field'))
        self.assertEqual(str(to_char), 'CAST("field" AS CHAR)')
Ejemplo n.º 15
0
    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))]