aboutsummaryrefslogtreecommitdiff
path: root/dateutil/test/property/test_isoparse_prop.py
diff options
context:
space:
mode:
Diffstat (limited to 'dateutil/test/property/test_isoparse_prop.py')
-rw-r--r--dateutil/test/property/test_isoparse_prop.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/dateutil/test/property/test_isoparse_prop.py b/dateutil/test/property/test_isoparse_prop.py
new file mode 100644
index 0000000..c6a4b82
--- /dev/null
+++ b/dateutil/test/property/test_isoparse_prop.py
@@ -0,0 +1,27 @@
+from hypothesis import given, assume
+from hypothesis import strategies as st
+
+from dateutil import tz
+from dateutil.parser import isoparse
+
+import pytest
+
+# Strategies
+TIME_ZONE_STRATEGY = st.sampled_from([None, tz.tzutc()] +
+ [tz.gettz(zname) for zname in ('US/Eastern', 'US/Pacific',
+ 'Australia/Sydney', 'Europe/London')])
+ASCII_STRATEGY = st.characters(max_codepoint=127)
+
+
+@pytest.mark.isoparser
+@given(dt=st.datetimes(timezones=TIME_ZONE_STRATEGY), sep=ASCII_STRATEGY)
+def test_timespec_auto(dt, sep):
+ if dt.tzinfo is not None:
+ # Assume offset has no sub-second components
+ assume(dt.utcoffset().total_seconds() % 60 == 0)
+
+ sep = str(sep) # Python 2.7 requires bytes
+ dtstr = dt.isoformat(sep=sep)
+ dt_rt = isoparse(dtstr)
+
+ assert dt_rt == dt