diff options
author | Chris McDonough <chrism@plope.com> | 2011-03-20 23:25:37 -0400 |
---|---|---|
committer | Chris McDonough <chrism@plope.com> | 2011-03-20 23:25:37 -0400 |
commit | d8176e7279e19ab3e618056555a05d710bb161d4 (patch) | |
tree | 43717841fd1326d22a4aaea2d1a17c1c0ce72fcb /tests/test_datetime_utils.py | |
parent | 1c4912af221e89ecf117154e2708f58984287ad8 (diff) | |
parent | c3f021fbf2fd027b0778ca9dadc79ae7b2a5394b (diff) | |
download | webob-tests.pycon2011.tar.gz |
merge from headtests.pycon2011
Diffstat (limited to 'tests/test_datetime_utils.py')
-rw-r--r-- | tests/test_datetime_utils.py | 61 |
1 files changed, 50 insertions, 11 deletions
diff --git a/tests/test_datetime_utils.py b/tests/test_datetime_utils.py index 3b91808..bcaf541 100644 --- a/tests/test_datetime_utils.py +++ b/tests/test_datetime_utils.py @@ -1,11 +1,19 @@ -# -*- coding: UTF-8 -*- +# -*- coding: utf-8 -*- +import datetime import calendar -from datetime import * from rfc822 import formatdate from webob import datetime_utils from nose.tools import ok_, eq_, assert_raises +def test_UTC(): + """Test missing function in _UTC""" + x = datetime_utils.UTC + ok_(x.tzname(datetime.datetime.now())=='UTC') + eq_(x.dst(datetime.datetime.now()), datetime.timedelta(0)) + eq_(x.utcoffset(datetime.datetime.now()), datetime.timedelta(0)) + eq_(repr(x), 'UTC') + def test_parse_date(): """Testing datetime_utils.parse_date. We need to verify the following scenarios: @@ -30,9 +38,11 @@ def test_parse_date(): "to parse_date. We should get None but instead we got %s" %\ ret) ret = datetime_utils.parse_date('Mon, 20 Nov 1995 19:12:08 -0500') - eq_(ret, datetime(1995, 11, 21, 0, 12, 8, tzinfo=datetime_utils.UTC)) + eq_(ret, datetime.datetime( + 1995, 11, 21, 0, 12, 8, tzinfo=datetime_utils.UTC)) ret = datetime_utils.parse_date('Mon, 20 Nov 1995 19:12:08') - eq_(ret, datetime(1995, 11, 20, 19, 12, 8, tzinfo=datetime_utils.UTC)) + eq_(ret, + datetime.datetime(1995, 11, 20, 19, 12, 8, tzinfo=datetime_utils.UTC)) def test_serialize_date(): """Testing datetime_utils.serialize_date @@ -44,8 +54,10 @@ def test_serialize_date(): ret = datetime_utils.serialize_date(u'Mon, 20 Nov 1995 19:12:08 GMT') assert type(ret) is (str) eq_(ret, 'Mon, 20 Nov 1995 19:12:08 GMT') - dt = formatdate(calendar.timegm((datetime.now()+timedelta(1)).timetuple())) - eq_(dt, datetime_utils.serialize_date(timedelta(1))) + dt = formatdate( + calendar.timegm( + (datetime.datetime.now()+datetime.timedelta(1)).timetuple())) + eq_(dt, datetime_utils.serialize_date(datetime.timedelta(1))) assert_raises(ValueError, datetime_utils.serialize_date, None) def test_parse_date_delta(): @@ -58,7 +70,18 @@ def test_parse_date_delta(): ok_(datetime_utils.parse_date_delta(None) is None, 'Passing none value, ' 'should return None') ret = datetime_utils.parse_date_delta('Mon, 20 Nov 1995 19:12:08 -0500') - eq_(ret, datetime(1995, 11, 21, 0, 12, 8, tzinfo=datetime_utils.UTC)) + eq_(ret, datetime.datetime( + 1995, 11, 21, 0, 12, 8, tzinfo=datetime_utils.UTC)) + WHEN = datetime.datetime(2011, 3, 16, 10, 10, 37, tzinfo=datetime_utils.UTC) + #with _NowRestorer(WHEN): Dammit, only Python 2.5 w/ __future__ + nr = _NowRestorer(WHEN) + nr.__enter__() + try: + ret = datetime_utils.parse_date_delta(1) + eq_(ret, WHEN + datetime.timedelta(0, 1)) + finally: + nr.__exit__(None, None, None) + def test_serialize_date_delta(): """Testing datetime_utils.serialize_date_delta @@ -66,13 +89,29 @@ def test_serialize_date_delta(): * if we pass something that's not an int or float, it should delegate the task to serialize_date """ + eq_(datetime_utils.serialize_date_delta(1), '1') + eq_(datetime_utils.serialize_date_delta(1.5), '1') ret = datetime_utils.serialize_date_delta(u'Mon, 20 Nov 1995 19:12:08 GMT') assert type(ret) is (str) eq_(ret, 'Mon, 20 Nov 1995 19:12:08 GMT') -def test_UTC(): - """Test missing function in _UTC""" - x = datetime_utils.UTC - ok_(x.tzname(datetime.now())=='UTC') +def test_timedelta_to_seconds(): + val = datetime.timedelta(86400) + result = datetime_utils.timedelta_to_seconds(val) + eq_(result, 7464960000) + + +class _NowRestorer(object): + + def __init__(self, new_NOW): + self._new_NOW = new_NOW + self._old_NOW = None + def __enter__(self): + import webob.datetime_utils + self._old_NOW = webob.datetime_utils._NOW + webob.datetime_utils._NOW = self._new_NOW + def __exit__(self, exc_type, exc_value, traceback): + import webob.datetime_utils + webob.datetime_utils._NOW = self._old_NOW |