Ejemplo n.º 1
0
    def testConnectClose(self):
        """
        test the _connect function
        """
        class Err(Exception):
            """
            Some dummy exception
            """

        with patch("statsdb.StatsDB.__init__", return_value=None), \
             pytest.raises(Err), \
             patch("mysql.connector.connect", side_effect=Err) as mock_connect:
            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            stats_obj._conn = MagicMock()
            stats_obj._user = "******"
            stats_obj._password = "******"
            stats_obj._host = "a host"
            stats_obj._database = "a database"
            stats_obj._buffered = False
            stats_obj._autocommit = False

            stats_obj._connect()

        mock_connect.assert_called_once_with(user=stats_obj._user,
                                             password=stats_obj._password,
                                             host=stats_obj._host,
                                             database=stats_obj._database)
        self.assertEqual(stats_obj._conn, None)
Ejemplo n.º 2
0
    def testSelect(self):
        """
        test the query_dict function
        """
        tname = "table_name"
        qrtn = "query_return"

        class DummyTable():
            name = tname

        fields = ["field1", "field2"]
        where = "somewhere"

        with patch("statsdb.StatsDB.__init__", return_value=None), \
             patch("statsdb.StatsDB.query",
                   return_value=qrtn) as mock_query:

            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            rtn = stats_obj.select(DummyTable(), fields, where, as_dict=False)

        sql = "SELECT {} FROM {} WHERE {}".format(','.join(fields), tname,
                                                  where)
        mock_query.assert_called_once_with(sql)
        self.assertEqual(rtn, qrtn)
Ejemplo n.º 3
0
    def testConnectQueryDict(self):
        """
        test the query_dict function
        """
        test_sql = "SELECT foo FROM bar"
        col = ["col1", "col2", "col3", "col4"]
        with patch("statsdb.StatsDB.__init__", return_value=None), \
             patch("statsdb.StatsDB.row_to_dict") as mock_rtd, \
             patch("statsdb.StatsDB.query", return_value=[("some_row")]) as mock_query:

            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            rtn = stats_obj.query_dict(test_sql, col)

        mock_query.assert_called_once_with(test_sql)
        mock_rtd.asset_called_once_with("some_row", col)
Ejemplo n.º 4
0
    def testMakeIndices(self):
        """
        test the _make_table_indices function
        """
        index_list = [('someName', 'someTable', 'someColumn'),
                      ('anotherName', 'anotherTable', 'anotherColumn')]
        with patch("statsdb.StatsDB.__init__", return_value=None), \
             patch("statsdb.StatsDB.query") as mock_query:
            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            stats_obj._make_table_indices(index_list)

        queries = [
            call("CREATE OR REPLACE INDEX {} ON {}({})".format(n, t, c))
            for n, t, c in index_list
        ]
        mock_query.assert_has_calls(queries)
Ejemplo n.º 5
0
    def testConnectQuery(self):
        """
        test the query function
        """
        test_sql = "SELECT foo FROM bar"
        with patch("statsdb.StatsDB.__init__", return_value=None), \
             patch("mysql.connector.connect") as mock_connect:
            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            stats_obj._conn = MagicMock()
            stats_obj._connect = MagicMock()
            mock_cursor = MagicMock()
            stats_obj._cursor = mock_cursor

            stats_obj.query(test_sql)

        mock_cursor.execute.assert_called_once_with(test_sql)
        stats_obj._conn.close.assert_called_once
Ejemplo n.º 6
0
    def testConnect(self):
        """
        test the _connect function
        """
        with patch("statsdb.StatsDB.__init__", return_value=None), \
             patch("mysql.connector.connect") as mock_connect:
            stats_obj = statsdb.StatsDB()
            stats_obj.logger = MagicMock()
            stats_obj._conn = MagicMock()
            stats_obj._user = "******"
            stats_obj._password = "******"
            stats_obj._host = "a host"
            stats_obj._database = "a database"
            stats_obj._buffered = False
            stats_obj._autocommit = False

            stats_obj._connect()

        mock_connect.assert_called_once_with(user=stats_obj._user,
                                             password=stats_obj._password,
                                             host=stats_obj._host,
                                             database=stats_obj._database)
        stats_obj._conn.cursor.assert_called_once_with(
            buffered=stats_obj._buffered)