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