Skip to content

Commit 3d8e194

Browse files
committed
test(datatype, timetz): ensure tz is always utc
1 parent 4dc08c6 commit 3d8e194

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/integration/datatype/test_datatypes.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import configparser
2+
import datetime
23
import os
34
import typing
45
from math import isclose
@@ -136,3 +137,26 @@ def test_redshift_varbyte_insert_python_bytes(db_kwargs, _input, client_protocol
136137
assert len(results) == 1
137138
assert len(results[0]) == 2
138139
assert results[0][1] == data.hex()
140+
141+
142+
@pytest.mark.parametrize("client_protocol", ClientProtocolVersion.list())
143+
@pytest.mark.parametrize("_input", ["Australia/Eucla", "America/New_York"])
144+
def test_redshift_timetz_client_tz_applied(db_kwargs, _input, client_protocol):
145+
db_kwargs["client_protocol_version"] = client_protocol
146+
data = _input
147+
t_time = datetime.time(hour=10, minute=14, second=56, tzinfo=datetime.timezone.utc)
148+
149+
with redshift_connector.connect(**db_kwargs) as con:
150+
with con.cursor() as cursor:
151+
cursor.execute("create table t_timetz_tz (v1 timetz)")
152+
cursor.execute("insert into t_timetz_tz (v1) values(%s)", (t_time,))
153+
cursor.execute("select v1 from t_timetz_tz ")
154+
results: typing.Tuple = cursor.fetchone()
155+
assert len(results) == 1
156+
assert results[0] == t_time
157+
158+
cursor.execute("set timezone = '{}'".format(data))
159+
cursor.execute("select v1 from t_timetz_tz ")
160+
results: typing.Tuple = cursor.fetchone()
161+
assert len(results) == 1
162+
assert results[0] == t_time

0 commit comments

Comments
 (0)