@@ -43,10 +43,12 @@ def test_init_all_params(self):
4343class 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
7783class 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