@@ -80,24 +80,33 @@ def test_guess_datetime_format_with_parseable_formats(self):
80
80
for dt_string , dt_format in dt_string_to_format :
81
81
assert parsing ._guess_datetime_format (dt_string ) == dt_format
82
82
83
- def test_guess_datetime_format_with_dayfirst (self ):
83
+ @pytest .mark .xfail (reason = "GH18141 - dateutil > 2.6.1 broken" )
84
+ @pytest .mark .parametrize (
85
+ "dayfirst, expected" ,
86
+ [
87
+ (True , "%d/%m/%Y" ),
88
+ (False , "%m/%d/%Y" )])
89
+ def test_guess_datetime_format_with_dayfirst (self , dayfirst , expected ):
84
90
ambiguous_string = '01/01/2011'
85
- assert parsing ._guess_datetime_format (
86
- ambiguous_string , dayfirst = True ) == '%d/%m/%Y'
87
- assert parsing ._guess_datetime_format (
88
- ambiguous_string , dayfirst = False ) == '%m/%d/%Y'
89
-
90
- def test_guess_datetime_format_with_locale_specific_formats (self ):
91
+ result = parsing ._guess_datetime_format (
92
+ ambiguous_string , dayfirst = dayfirst )
93
+ assert result == expected
94
+
95
+ @pytest .mark .xfail (reason = "GH18141 - dateutil > 2.6.1 broken" )
96
+ @pytest .mark .parametrize (
97
+ "string, format" ,
98
+ [
99
+ ('30/Dec/2011' , '%d/%b/%Y' ),
100
+ ('30/December/2011' , '%d/%B/%Y' ),
101
+ ('30/Dec/2011 00:00:00' , '%d/%b/%Y %H:%M:%S' )])
102
+ def test_guess_datetime_format_with_locale_specific_formats (
103
+ self , string , format ):
91
104
# The month names will vary depending on the locale, in which
92
105
# case these wont be parsed properly (dateutil can't parse them)
93
106
tm ._skip_if_has_locale ()
94
107
95
- dt_string_to_format = (('30/Dec/2011' , '%d/%b/%Y' ),
96
- ('30/December/2011' , '%d/%B/%Y' ),
97
- ('30/Dec/2011 00:00:00' , '%d/%b/%Y %H:%M:%S' ), )
98
-
99
- for dt_string , dt_format in dt_string_to_format :
100
- assert parsing ._guess_datetime_format (dt_string ) == dt_format
108
+ result = parsing ._guess_datetime_format (string )
109
+ assert result == format
101
110
102
111
def test_guess_datetime_format_invalid_inputs (self ):
103
112
# A datetime string must include a year, month and a day for it
@@ -117,17 +126,20 @@ def test_guess_datetime_format_invalid_inputs(self):
117
126
for invalid_dt in invalid_dts :
118
127
assert parsing ._guess_datetime_format (invalid_dt ) is None
119
128
120
- def test_guess_datetime_format_nopadding (self ):
129
+ @pytest .mark .xfail (reason = "GH18141 - dateutil > 2.6.1 broken" )
130
+ @pytest .mark .parametrize (
131
+ "string, format" ,
132
+ [
133
+ ('2011-1-1' , '%Y-%m-%d' ),
134
+ ('30-1-2011' , '%d-%m-%Y' ),
135
+ ('1/1/2011' , '%m/%d/%Y' ),
136
+ ('2011-1-1 00:00:00' , '%Y-%m-%d %H:%M:%S' ),
137
+ ('2011-1-1 0:0:0' , '%Y-%m-%d %H:%M:%S' ),
138
+ ('2011-1-3T00:00:0' , '%Y-%m-%dT%H:%M:%S' )])
139
+ def test_guess_datetime_format_nopadding (self , string , format ):
121
140
# GH 11142
122
- dt_string_to_format = (('2011-1-1' , '%Y-%m-%d' ),
123
- ('30-1-2011' , '%d-%m-%Y' ),
124
- ('1/1/2011' , '%m/%d/%Y' ),
125
- ('2011-1-1 00:00:00' , '%Y-%m-%d %H:%M:%S' ),
126
- ('2011-1-1 0:0:0' , '%Y-%m-%d %H:%M:%S' ),
127
- ('2011-1-3T00:00:0' , '%Y-%m-%dT%H:%M:%S' ))
128
-
129
- for dt_string , dt_format in dt_string_to_format :
130
- assert parsing ._guess_datetime_format (dt_string ) == dt_format
141
+ result = parsing ._guess_datetime_format (string )
142
+ assert result == format
131
143
132
144
133
145
class TestArrayToDatetime (object ):
0 commit comments