aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/python-dateutil/py3/tests/property/test_tz_prop.py
blob: ec6d271dcf16f2b6bc4b90527f7d6638213d03ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from datetime import datetime, timedelta

import pytest
import six
from hypothesis import assume, given
from hypothesis import strategies as st

from dateutil import tz as tz

EPOCHALYPSE = datetime.fromtimestamp(2147483647)
NEGATIVE_EPOCHALYPSE = datetime.fromtimestamp(0) - timedelta(seconds=2147483648)


@pytest.mark.gettz
@pytest.mark.parametrize("gettz_arg", [None, ""])
# TODO: Remove bounds when GH #590 is resolved
@given(
    dt=st.datetimes(
        min_value=NEGATIVE_EPOCHALYPSE, max_value=EPOCHALYPSE, timezones=st.just(tz.UTC),
    )
)
def test_gettz_returns_local(gettz_arg, dt):
    act_tz = tz.gettz(gettz_arg)
    if isinstance(act_tz, tz.tzlocal):
        return

    dt_act = dt.astimezone(tz.gettz(gettz_arg))
    if six.PY2:
        dt_exp = dt.astimezone(tz.tzlocal())
    else:
        dt_exp = dt.astimezone()

    assert dt_act == dt_exp
    assert dt_act.tzname() == dt_exp.tzname()
    assert dt_act.utcoffset() == dt_exp.utcoffset()