summaryrefslogtreecommitdiff
path: root/dateutil
diff options
context:
space:
mode:
authorPaul Ganssle <pganssle@users.noreply.github.com>2018-04-19 19:57:38 -0400
committerGitHub <noreply@github.com>2018-04-19 19:57:38 -0400
commit194a8e83f0f6544b12e1858da767fac833da7666 (patch)
treee14ad4444f7890b675eda8ccbce32960b8bfe81c /dateutil
parent4e0a3fcab40a1903fa771038bcce4fcb95b20cba (diff)
parent88653842f0e159750da4a5e9e81efe245ee3a0f0 (diff)
downloaddateutil-git-194a8e83f0f6544b12e1858da767fac833da7666.tar.gz
Merge pull request #688 from pganssle/isoparser_hypothesis
Add hypothesis tests for isoparse
Diffstat (limited to 'dateutil')
-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