mirror of
https://github.com/internetarchive/warcprox.git
synced 2025-01-18 13:22:09 +01:00
convenience function rethinstuff.utcnow()
This commit is contained in:
parent
79b3895da3
commit
447f23615f
@ -6,6 +6,14 @@ import time
|
||||
import types
|
||||
import socket
|
||||
import os
|
||||
import datetime
|
||||
|
||||
def utcnow():
|
||||
"""Convenience function to get timezone-aware UTC datetime. RethinkDB
|
||||
requires timezone-aware datetime for its native time type, and
|
||||
unfortunately datetime.datetime.utcnow() is not timezone-aware. Also python
|
||||
2 doesn't come with a timezone implementation."""
|
||||
return datetime.datetime.now(r.make_timezone("00:00"))
|
||||
|
||||
class RethinkerWrapper(object):
|
||||
logger = logging.getLogger('rethinkstuff.RethinkerWrapper')
|
||||
@ -169,3 +177,4 @@ class ServiceRegistry(object):
|
||||
return result
|
||||
except r.ReqlNonExistenceError:
|
||||
return []
|
||||
|
||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
name='rethinkstuff',
|
||||
version='0.1.2',
|
||||
version='0.1.3',
|
||||
packages=['rethinkstuff'],
|
||||
classifiers=[
|
||||
'Programming Language :: Python :: 2.7',
|
||||
|
@ -8,6 +8,7 @@ import rethinkdb
|
||||
import time
|
||||
import socket
|
||||
import os
|
||||
import datetime
|
||||
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.INFO,
|
||||
format="%(asctime)s %(process)d %(levelname)s %(threadName)s %(name)s.%(funcName)s(%(filename)s:%(lineno)d) %(message)s")
|
||||
@ -164,3 +165,15 @@ def test_service_registry(r):
|
||||
svc0 = svcreg.heartbeat(svc0)
|
||||
svc1 = svcreg.heartbeat(svc1)
|
||||
assert len(svcreg.available_services("yes-such-role")) == 2
|
||||
|
||||
def test_utcnow(r):
|
||||
now_notz = datetime.datetime.utcnow() # has no timezone :(
|
||||
assert not now_notz.tzinfo
|
||||
|
||||
now_tz = r.utcnow() # solution to that problem
|
||||
assert now_tz.tzinfo
|
||||
assert now_tz.tzinfo.delta == datetime.timedelta(0)
|
||||
|
||||
# XXX should really run this test in non-utc timezone environment
|
||||
assert now_tz.timestamp() - now_notz.timestamp() < 0.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user