3030from trino .transaction import IsolationLevel
3131
3232
33- @pytest .fixture
34- def trino_connection (run_trino ):
33+ @pytest .fixture ( params = [ None , "json+zstd" , "json+lz4" , "json" ])
34+ def trino_connection (request , run_trino ):
3535 host , port = run_trino
36+ encoding = request .param
3637
3738 yield trino .dbapi .Connection (
38- host = host , port = port , user = "test" , source = "test" , max_attempts = 1
39+ host = host , port = port , user = "test" , source = "test" , max_attempts = 1 , encoding = encoding
3940 )
4041
4142
@@ -1823,8 +1824,8 @@ def test_prepared_statement_capability_autodetection(legacy_prepared_statements,
18231824
18241825
18251826@pytest .mark .skipif (
1826- trino_version () <= '464' ,
1827- reason = "spooled protocol was introduced in version 464 "
1827+ trino_version () <= 466 ,
1828+ reason = "spooling protocol was introduced in version 466 "
18281829)
18291830def test_select_query_spooled_segments (trino_connection ):
18301831 cur = trino_connection .cursor ()
@@ -1834,8 +1835,22 @@ def test_select_query_spooled_segments(trino_connection):
18341835 stop => 5,
18351836 step => 1)) n""" )
18361837 rows = cur .fetchall ()
1837- # TODO: improve test
1838- assert len (rows ) > 0
1838+ assert len (rows ) == 300875
1839+ for row in rows :
1840+ assert isinstance (row [0 ], int ), f"Expected integer for orderkey, got { type (row [0 ])} "
1841+ assert isinstance (row [1 ], int ), f"Expected integer for partkey, got { type (row [1 ])} "
1842+ assert isinstance (row [2 ], int ), f"Expected integer for suppkey, got { type (row [2 ])} "
1843+ assert isinstance (row [3 ], int ), f"Expected int for linenumber, got { type (row [3 ])} "
1844+ assert isinstance (row [4 ], float ), f"Expected float for quantity, got { type (row [4 ])} "
1845+ assert isinstance (row [5 ], float ), f"Expected float for extendedprice, got { type (row [5 ])} "
1846+ assert isinstance (row [6 ], float ), f"Expected float for discount, got { type (row [6 ])} "
1847+ assert isinstance (row [7 ], float ), f"Expected string for tax, got { type (row [7 ])} "
1848+ assert isinstance (row [8 ], str ), f"Expected string for returnflag, got { type (row [8 ])} "
1849+ assert isinstance (row [9 ], str ), f"Expected string for linestatus, got { type (row [9 ])} "
1850+ assert isinstance (row [10 ], date ), f"Expected date for shipdate, got { type (row [10 ])} "
1851+ assert isinstance (row [11 ], date ), f"Expected date for commitdate, got { type (row [11 ])} "
1852+ assert isinstance (row [12 ], date ), f"Expected date for receiptdate, got { type (row [12 ])} "
1853+ assert isinstance (row [13 ], str ), f"Expected string for shipinstruct, got { type (row [13 ])} "
18391854
18401855
18411856def get_cursor (legacy_prepared_statements , run_trino ):
0 commit comments