@@ -123,6 +123,19 @@ def df_full():
123
123
)
124
124
125
125
126
+ @pytest .fixture (
127
+ params = [
128
+ datetime .datetime .now (datetime .timezone .utc ),
129
+ datetime .datetime .strptime ("2019-01-04T16:41:24+0200" , "%Y-%m-%dT%H:%M:%S%z" ),
130
+ datetime .datetime .strptime ("2019-01-04T16:41:24+0215" , "%Y-%m-%dT%H:%M:%S%z" ),
131
+ datetime .datetime .strptime ("2019-01-04T16:41:24-0200" , "%Y-%m-%dT%H:%M:%S%z" ),
132
+ datetime .datetime .strptime ("2019-01-04T16:41:24-0215" , "%Y-%m-%dT%H:%M:%S%z" ),
133
+ ]
134
+ )
135
+ def timezone_aware_date_list (request ):
136
+ return request .param
137
+
138
+
126
139
def check_round_trip (
127
140
df ,
128
141
engine = None ,
@@ -712,6 +725,13 @@ def test_timestamp_nanoseconds(self, pa):
712
725
df = pd .DataFrame ({"a" : pd .date_range ("2017-01-01" , freq = "1n" , periods = 10 )})
713
726
check_round_trip (df , pa , write_kwargs = {"version" : "2.0" })
714
727
728
+ @td .skip_if_no ("pyarrow" , min_version = "0.14" )
729
+ def test_timezone_aware_index (self , pa , timezone_aware_date_list ):
730
+ idx = 5 * [timezone_aware_date_list ]
731
+
732
+ df = pd .DataFrame (index = idx )
733
+ check_round_trip (df , pa , write_kwargs = {"version" : "2.0" })
734
+
715
735
@td .skip_if_no ("pyarrow" , min_version = "0.17" )
716
736
def test_filter_row_groups (self , pa ):
717
737
# https://github.com/pandas-dev/pandas/issues/26551
@@ -850,3 +870,12 @@ def test_empty_dataframe(self, fp):
850
870
expected = df .copy ()
851
871
expected .index .name = "index"
852
872
check_round_trip (df , fp , expected = expected )
873
+
874
+ def test_timezone_aware_index (self , fp , timezone_aware_date_list ):
875
+ idx = 5 * [timezone_aware_date_list ]
876
+
877
+ df = pd .DataFrame (index = idx , data = {"col" : 5 * [0 ]})
878
+
879
+ expected = df .copy ()
880
+ expected .index .name = "index"
881
+ check_round_trip (df , fp , expected = expected )
0 commit comments