def test_database_api(self): db = Database() with self.assertRaises(NotImplementedError): db.connect() with self.assertRaises(NotImplementedError): db.trunc_date(Field('abc'), 'day')
def _do_fetch_data(query: str, database: Database): """ Executes a query to fetch data from database middleware and builds/cleans the data as a data frame. The query execution is logged with its duration. :param database: instance of `fireant.Database`, database middleware :param query: Query string :return: `pd.DataFrame` constructed from the result of the query """ with database.connect() as connection: return pd.read_sql(query, connection, coerce_float=True, parse_dates=True)
def _do_fetch_data(query: str, database: Database): """ Executes a query to fetch data from database middleware and builds/cleans the data as a data frame. The query execution is logged with its duration. :param database: instance of `fireant.Database`, database middleware :param query: Query string :return: `pd.DataFrame` constructed from the result of the query """ with database.connect() as connection: return pd.read_sql(query, connection, coerce_float=True, parse_dates=True)
def test_database_reuse_passed_connection(self, mock_connect, mock_fetch): db = Database() mock_connect.side_effect = test_connect mock_fetch.side_effect = test_fetch with db.connect() as connection: connection_1 = db.fetch(db, 'SELECT a from abc', connection=connection) connection_2 = db.fetch(db, 'SELECT b from def', connection=connection) self.assertEqual(1, mock_connect.call_count) self.assertEqual(connection_1, connection_2)