def test_later_minus_earlier_returns_positive_timedelta():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    delta = later - earlier
    assert_is_instance(delta, timedelta)
    assert_equal(timedelta(hours=1), delta)
def test_earlier_minutes_later_returns_negative_timedelta():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    delta = earlier - later
    assert_is_instance(delta, timedelta)
    assert_equal(timedelta(hours=-1), delta)
def test_earlier_minutes_later_returns_negative_timedelta():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    delta = earlier - later
    assert_is_instance(delta, timedelta)
    assert_equal(timedelta(hours=-1), delta)
def test_later_minus_earlier_returns_positive_timedelta():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    delta = later - earlier
    assert_is_instance(delta, timedelta)
    assert_equal(timedelta(hours=1), delta)
Ejemplo n.º 5
0
def test_parse_datetime():
    TEST_CASES = [
        (
            '(11 Jul, 2018\n09:58:34 BST)',
            utcdatetime.utcdatetime(2018, 7, 11, 8, 58, 34)
        ),
        (
            '(11 Jan, 2018\n09:58:34 GMT)',
            utcdatetime.utcdatetime(2018, 1, 11, 9, 58, 34)
        ),
    ]

    for string, expected in TEST_CASES:
        yield assert_equal, parse_datetime(string), expected
 def _parse_date(self, string):
     """
     `2018-07-04 00:00`
     """
     match = re.match('(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})', string)
     year, month, day, hour, minute = [int(x) for x in match.groups()]
     return utcdatetime.utcdatetime(year, month, day, hour, minute)
def test_bad_constructors():
    valid_args = [
        [],
        (2015),
        (2015, 6),
        (2015, 6, 30),
        (2015, 6, 30, 18, 45, 37, 500, None),
    ]

    for args in valid_args:
        yield assert_raises, TypeError, lambda: utcdatetime(args)
Ejemplo n.º 8
0
def test_bad_constructors():
    valid_args = [
        [],
        (2015),
        (2015, 6),
        (2015, 6, 30),
        (2015, 6, 30, 18, 45, 37, 500, None),
    ]

    for args in valid_args:
        yield assert_raises, TypeError, lambda: utcdatetime(args)
Ejemplo n.º 9
0
def test_invalid_days_are_rejected():
    invalid_dates = [
        (2000, 1, 0),
        (2000, 1, 32),
        (2000, 2, 30),  # leap year
        (2001, 2, 29),  # non leap year
        (2000, 3, 32),
        (2000, 4, 31),
        (2000, 5, 32),
        (2000, 6, 31),
        (2000, 7, 32),
        (2000, 8, 32),
        (2000, 9, 31),
        (2000, 10, 32),
        (2000, 11, 31),
        (2000, 12, 32),
    ]

    for args in invalid_dates:
        yield assert_raises, ValueError, lambda: utcdatetime(*args)
def test_invalid_days_are_rejected():
    invalid_dates = [
        (2000, 1, 0),

        (2000, 1, 32),
        (2000, 2, 30),  # leap year
        (2001, 2, 29),  # non leap year
        (2000, 3, 32),
        (2000, 4, 31),
        (2000, 5, 32),
        (2000, 6, 31),
        (2000, 7, 32),
        (2000, 8, 32),
        (2000, 9, 31),
        (2000, 10, 32),
        (2000, 11, 31),
        (2000, 12, 32),
    ]

    for args in invalid_dates:
        yield assert_raises, ValueError, lambda: utcdatetime(*args)
def test_utcdatetimes_compare_not_equal_when_not_equal():
    for a, b in UNEQUAL_TEST_CASES:
        yield assert_not_equal, utcdatetime(*a), utcdatetime(*b)
def test_can_add_timedelta_with_minus_equals_operator():
    dt = utcdatetime(2016, 10, 7, 16, 0)
    dt -= timedelta(minutes=15)

    expected = utcdatetime(2016, 10, 7, 15, 45)
    assert_equal(expected, dt)
def test_utcdatetimes_compare_equal_when_equal():
    assert_equal(
        utcdatetime(2016, 10, 7, 15, 0),
        utcdatetime(2016, 10, 7, 15, 0)
    )
def _assert_can_construct(args):
    utcdatetime(*args)
def test_can_add_timedelta_to_utcdatetime():
    got = utcdatetime(2016, 10, 7, 16, 0) + timedelta(minutes=15)
    expected = utcdatetime(2016, 10, 7, 16, 15)
    assert_equal(expected, got)
def test_can_add_timedelta_with_minus_equals_operator():
    dt = utcdatetime(2016, 10, 7, 16, 0)
    dt -= timedelta(minutes=15)

    expected = utcdatetime(2016, 10, 7, 15, 45)
    assert_equal(expected, dt)
SECONDS_FRACTIONS = [
    '',      # no fractional part
    '.456',
    '.000456',
]

TIMEZONES = [
    'Z',
    '+00:00',
    '+01:00',
    '-01:00',
]


EXPECTED = {
    '2010-01-23T18:30:21Z': utcdatetime(2010, 1, 23, 18, 30, 21),
    '2010-01-23T18:30:21.456Z': utcdatetime(2010, 1, 23, 18, 30, 21, 456000),
    '2010-01-23T18:30:21.000456Z': utcdatetime(2010, 1, 23, 18, 30, 21, 456),

    '2010-01-23T18:30:21+00:00':
    utcdatetime(2010, 1, 23, 18, 30, 21),

    '2010-01-23T18:30:21.456+00:00':
    utcdatetime(2010, 1, 23, 18, 30, 21, 456000),

    '2010-01-23T18:30:21.000456+00:00':
    utcdatetime(2010, 1, 23, 18, 30, 21, 456),

    '2010-01-23T18:30:21+01:00':
    utcdatetime(2010, 1, 23, 17, 30, 21),
def test_utcdatetime_less_than_returns_false_when_lhs_after_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_false(later < earlier)
def test_utcdatetime_less_than_returns_true_when_lhs_before_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_true(earlier < later)
def test_utcdatetime_greater_than_returns_false_when_lhs_before_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_false(earlier > later)
def test_utcdatetime_less_than_returns_true_when_lhs_before_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_true(earlier < later)
def test_utcdatetime_greater_than_returns_true_when_lhs_after_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_true(later > earlier)
def test_utcdatetimes_compare_not_equal_when_not_equal():
    for a, b in UNEQUAL_TEST_CASES:
        yield assert_not_equal, utcdatetime(*a), utcdatetime(*b)
def test_utcdatetimes_compare_equal_when_equal():
    assert_equal(utcdatetime(2016, 10, 7, 15, 0),
                 utcdatetime(2016, 10, 7, 15, 0))
def test_utcdatetime_greater_than_returns_true_when_lhs_after_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_true(later > earlier)
import pytz

from utcdatetime import utcdatetime

from nose.tools import assert_equal

UK = pytz.timezone('Europe/London')
SYDNEY = pytz.timezone('Australia/Sydney')


TEST_CASES = [
    (utcdatetime(2010, 6, 10, 17, 45),  # note british summer time -> UTC
     UK,
     '2010-06-10T18:45:00+01:00'),

    (utcdatetime(2010, 2, 10, 18, 45),  # UK winter time == GMT, no change
     UK,
     '2010-02-10T18:45:00+00:00'),

    (utcdatetime(2015, 12, 1, 20, 30),  # note day shift!
     SYDNEY,
     '2015-12-02T07:30:00+11:00'),

    (utcdatetime(2015, 6, 6, 8, 30),  # Sydney winter time
     SYDNEY,
     '2015-06-06T18:30:00+10:00'),
]


def test_from_datetime():
    for utc_datetime, timezone, expected_python_datetime in TEST_CASES:
def test_utcdatetime_greater_than_returns_false_when_lhs_before_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_false(earlier > later)
def test_can_subtract_timedelta_from_utcdatetime():
    got = utcdatetime(2016, 10, 7, 16, 0) - timedelta(minutes=15)
    expected = utcdatetime(2016, 10, 7, 15, 45)
    assert_equal(expected, got)
def test_utcdatetime_less_than_returns_false_when_lhs_after_rhs():
    earlier = utcdatetime(2016, 10, 7, 15, 0)
    later = utcdatetime(2016, 10, 7, 16, 0)

    assert_false(later < earlier)
Ejemplo n.º 30
0
def _assert_can_construct(args):
    utcdatetime(*args)
Ejemplo n.º 31
0
from nose.tools import assert_equal

from utcdatetime import utcdatetime

TEST_CASES = [
    ('utcdatetime(2010, 6, 30, 0, 0)',
     utcdatetime(2010, 6, 30)),

    ('utcdatetime(2010, 6, 30, 18, 0)',
     utcdatetime(2010, 6, 30, 18)),

    ('utcdatetime(2010, 6, 30, 18, 36)',
     utcdatetime(2010, 6, 30, 18, 36)),

    ('utcdatetime(2010, 6, 30, 18, 36, 45)',
     utcdatetime(2010, 6, 30, 18, 36, 45)),

    ('utcdatetime(2010, 6, 30, 18, 36, 45)',
     utcdatetime(2010, 6, 30, 18, 36, 45)),

    ('utcdatetime(2010, 6, 30, 18, 36, 45, 456)',
     utcdatetime(2010, 6, 30, 18, 36, 45, 456)),
]


def test_str_method():
    for expected_repr, utc_datetime in TEST_CASES:
        yield assert_equal, expected_repr, repr(utc_datetime)
def test_can_add_timedelta_to_utcdatetime():
    got = utcdatetime(2016, 10, 7, 16, 0) + timedelta(minutes=15)
    expected = utcdatetime(2016, 10, 7, 16, 15)
    assert_equal(expected, got)
Ejemplo n.º 33
0
import utcdatetime

from nose.tools import assert_equal

import datetime

TEST_CASES = [
    (utcdatetime.utcdatetime(2015, 5, 11, 16, 43, 10,
                             45), datetime.time(16, 43, 10, 45)),
]


def test_time_method():
    for utc_dt, expected_time in TEST_CASES:
        yield _assert_time_equals, utc_dt, expected_time


def _assert_time_equals(utc_dt, expected_time):
    got = utc_dt.time()

    assert_equal(expected_time, got)
def test_can_subtract_timedelta_from_utcdatetime():
    got = utcdatetime(2016, 10, 7, 16, 0) - timedelta(minutes=15)
    expected = utcdatetime(2016, 10, 7, 15, 45)
    assert_equal(expected, got)
Ejemplo n.º 35
0
from nose.tools import assert_equal

from utcdatetime import utcdatetime

TEST_CASES = [
    ('2010-06-30T00:00:00Z', utcdatetime(2010, 6, 30)),
    ('2010-06-30T18:00:00Z', utcdatetime(2010, 6, 30, 18)),
    ('2010-06-30T18:36:00Z', utcdatetime(2010, 6, 30, 18, 36)),
    ('2010-06-30T18:36:45Z', utcdatetime(2010, 6, 30, 18, 36, 45)),
    ('2010-06-30T18:36:45Z', utcdatetime(2010, 6, 30, 18, 36, 45)),
    ('2010-06-30T18:36:45.000456Z', utcdatetime(2010, 6, 30, 18, 36, 45, 456)),
]


def test_str_method():
    for expected_string, utc_datetime in TEST_CASES:
        yield assert_equal, expected_string, str(utc_datetime)
def test_subtracting_inappropriate_type_raises_type_error():
    assert_raises(TypeError, lambda: utcdatetime(2016, 10, 7, 15, 0) - "foo")
Ejemplo n.º 37
0
import datetime
import pytz

from nose.tools import assert_equal, assert_raises

from utcdatetime import utcdatetime

UK = pytz.timezone('Europe/London')
SYDNEY = pytz.timezone('Australia/Sydney')

TEST_CASES = [
    (UK.localize(datetime.datetime(2010, 6, 10, 18, 45)),
     utcdatetime(2010, 6, 10, 17, 45)),  # note british summer time -> UTC
    (UK.localize(datetime.datetime(2010, 2, 10, 18, 45)),
     utcdatetime(2010, 2, 10, 18, 45)),  # UK winter time == GMT
    (SYDNEY.localize(datetime.datetime(2015, 12, 2, 7, 30)),
     utcdatetime(2015, 12, 1, 20, 30)),  # note day shift!
    (SYDNEY.localize(datetime.datetime(2015, 6, 6, 18, 30)),
     utcdatetime(2015, 6, 6, 8, 30)),  # Sydney winter time
]


def test_that_from_datetime_rejets_naive_datetimes():
    assert_raises(
        ValueError, lambda: utcdatetime.from_datetime(
            datetime.datetime(2015, 10, 10, 13, 45)))


def test_from_datetime():
    for dt, expected_utcdatetime in TEST_CASES:
        yield assert_equal, expected_utcdatetime, utcdatetime.from_datetime(dt)
def test_subtracting_inappropriate_type_raises_type_error():
    assert_raises(TypeError, lambda: utcdatetime(2016, 10, 7, 15, 0) - "foo")
Ejemplo n.º 39
0
import utcdatetime

from nose.tools import assert_equal

import datetime


TEST_CASES = [
    (
        utcdatetime.utcdatetime(2015, 5, 11, 16, 43, 10, 45),
        datetime.date(2015, 5, 11)
    ),
]


def test_date_method():
    for utc_dt, expected_date in TEST_CASES:
        yield _assert_date_equals, utc_dt, expected_date


def _assert_date_equals(utc_dt, expected_date):
    got = utc_dt.date()

    assert_equal(expected_date, got)
Ejemplo n.º 40
0
def _assert_now_equals(local_datetime, expected_utc):
    with freeze_time(local_datetime):
        got = utcdatetime.utcdatetime.now()

    assert_equal(utcdatetime.utcdatetime(*expected_utc), got)