Skip to content

Commit 333130f

Browse files
committed
small adjustment in the tests
1 parent c76a13e commit 333130f

2 files changed

Lines changed: 10 additions & 15 deletions

File tree

integrations/sqlalchemy/src/haystack_integrations/components/retrievers/sqlalchemy/sqlalchemy_table_retriever.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def run(self, query: str) -> dict[str, Any]:
162162
logger.warning("Query is not a string, returning empty DataFrame")
163163
return {"dataframe": DataFrame(), "table": "", "error": "query is not a string"}
164164

165-
if not query:
165+
if not query.strip():
166166
return {"dataframe": DataFrame(), "table": "", "error": "empty query"}
167167

168168
if not self._warmed_up:

integrations/sqlalchemy/tests/test_sqlalchemy_table_retriever.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,12 @@ def test_init_all_params(self):
4343
class TestSQLAlchemyTableRetrieverSerialization:
4444
def test_to_dict(self):
4545
password = Secret.from_env_var("DB_PASSWORD")
46+
init_script = ["CREATE TABLE t (x INTEGER)", "INSERT INTO t VALUES (1)"]
4647
retriever = SQLAlchemyTableRetriever(
4748
drivername="sqlite",
4849
database=":memory:",
4950
password=password,
51+
init_script=init_script,
5052
)
5153
d = retriever.to_dict()
5254
expected_type = (
@@ -57,21 +59,25 @@ def test_to_dict(self):
5759
assert params["drivername"] == "sqlite"
5860
assert params["database"] == ":memory:"
5961
assert params["password"]["type"] == "env_var"
62+
assert params["init_script"] == init_script
6063

6164
def test_from_dict(self, monkeypatch):
6265
monkeypatch.setenv("DB_PASSWORD", "secret")
6366
password = Secret.from_env_var("DB_PASSWORD")
67+
init_script = ["CREATE TABLE t (x INTEGER)", "INSERT INTO t VALUES (1)"]
6468
retriever = SQLAlchemyTableRetriever(
6569
drivername="sqlite",
6670
database=":memory:",
6771
password=password,
72+
init_script=init_script,
6873
)
6974
d = retriever.to_dict()
7075
restored = SQLAlchemyTableRetriever.from_dict(d)
7176
assert restored.drivername == "sqlite"
7277
assert restored.database == ":memory:"
7378
assert restored.password is not None
7479
assert restored.password.resolve_value() == "secret"
80+
assert restored.init_script == init_script
7581

7682

7783
class TestSQLAlchemyTableRetrieverRun:
@@ -99,9 +105,10 @@ def test_run_non_string_query(self):
99105
assert result["dataframe"].empty
100106
assert result["table"] == ""
101107

102-
def test_run_empty_query(self):
108+
@pytest.mark.parametrize("query", ["", " ", "\t", "\n"])
109+
def test_run_empty_query(self, query):
103110
retriever = SQLAlchemyTableRetriever(drivername="sqlite", database=":memory:")
104-
result = retriever.run(query="")
111+
result = retriever.run(query=query)
105112
assert result["error"] == "empty query"
106113
assert result["dataframe"].empty
107114
assert result["table"] == ""
@@ -151,18 +158,6 @@ def test_max_row_limit(self, monkeypatch):
151158
result = retriever.run(query="SELECT * FROM t")
152159
assert len(result["dataframe"]) == 2
153160

154-
def test_warm_up_with_init_script(self):
155-
init_sql = ["CREATE TABLE greetings (msg TEXT)", "INSERT INTO greetings VALUES ('hello')"]
156-
retriever = SQLAlchemyTableRetriever(
157-
drivername="sqlite",
158-
database=":memory:",
159-
init_script=init_sql,
160-
)
161-
retriever.warm_up()
162-
result = retriever.run(query="SELECT * FROM greetings")
163-
assert not result["dataframe"].empty
164-
assert result["dataframe"].iloc[0]["msg"] == "hello"
165-
166161
def test_warm_up_idempotent(self):
167162
retriever = SQLAlchemyTableRetriever(drivername="sqlite", database=":memory:")
168163
retriever.warm_up()

0 commit comments

Comments
 (0)