diff options
| author | Paul Ganssle <pganssle@users.noreply.github.com> | 2018-04-19 19:57:38 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-19 19:57:38 -0400 |
| commit | 194a8e83f0f6544b12e1858da767fac833da7666 (patch) | |
| tree | e14ad4444f7890b675eda8ccbce32960b8bfe81c /dateutil | |
| parent | 4e0a3fcab40a1903fa771038bcce4fcb95b20cba (diff) | |
| parent | 88653842f0e159750da4a5e9e81efe245ee3a0f0 (diff) | |
| download | dateutil-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.py | 27 |
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 |
