use Z isoformat in UTC timestamps

instead of +00:00
Min RK 10 years ago
parent d45cb2ad80
commit 9f55a857f3

@ -5,22 +5,11 @@ Timezone utilities
Just UTC-awareness right now
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2013 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
from datetime import tzinfo, timedelta, datetime
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
# constant for zero offset
ZERO = timedelta(0)
@ -44,3 +33,10 @@ def utc_aware(unaware):
utcfromtimestamp = utc_aware(datetime.utcfromtimestamp)
utcnow = utc_aware(datetime.utcnow)
def isoformat(dt):
"""Return iso-formatted timestamp
Like .isoformat(), but uses Z for UTC instead of +00:00
"""
return dt.isoformat().replace('+00:00', 'Z')

@ -17,7 +17,7 @@ from jupyter_client.multikernelmanager import MultiKernelManager
from traitlets import Dict, List, Unicode, TraitError, default, validate
from notebook.utils import to_os_path
from notebook.services.contents.tz import utcnow
from notebook.services.contents.tz import utcnow, isoformat
from ipython_genutils.py3compat import getcwd
@ -177,7 +177,7 @@ class MappingKernelManager(MultiKernelManager):
model = {
"id":kernel_id,
"name": kernel.kernel_name,
"last_activity": kernel.last_activity,
"last_activity": isoformat(kernel.last_activity),
"execution_state": kernel.execution_state,
"connections": self._kernel_connections[kernel_id],
}

@ -9,14 +9,14 @@ from tornado.ioloop import IOLoop
from ..sessionmanager import SessionManager
from notebook.services.kernels.kernelmanager import MappingKernelManager
from notebook.services.contents.manager import ContentsManager
from notebook.services.contents.tz import utcnow
from notebook.services.contents.tz import utcnow, isoformat
class DummyKernel(object):
def __init__(self, kernel_name='python'):
self.kernel_name = kernel_name
dummy_date = utcnow()
dummy_date_s = dummy_date.isoformat()
dummy_date_s = isoformat(dummy_date)
class DummyMKM(MappingKernelManager):
"""MappingKernelManager interface that doesn't start kernels, for testing"""
@ -74,7 +74,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'A',
'name': 'bar',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}}
self.assertEqual(model, expected)
@ -116,7 +116,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'A',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}, {
@ -127,7 +127,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'B',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}, {
@ -138,7 +138,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'C',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}
@ -164,7 +164,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'B',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}
@ -185,7 +185,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'A',
'name':'julia',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}
@ -216,7 +216,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'A',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}, {
@ -227,7 +227,7 @@ class TestSessionManager(TestCase):
'kernel': {
'id': 'C',
'name':'python',
'last_activity': dummy_date,
'last_activity': dummy_date_s,
'execution_state': 'idle',
}
}

@ -225,6 +225,8 @@ class SessionAPITest(NotebookTestBase):
r = self.request('GET', 'api/kernels')
r.raise_for_status()
kernel_list = r.json()
after['kernel'].pop('last_activity')
[ k.pop('last_activity') for k in kernel_list ]
self.assertEqual(kernel_list, [after['kernel']])
def test_modify_kernel_id(self):
@ -248,4 +250,7 @@ class SessionAPITest(NotebookTestBase):
r = self.request('GET', 'api/kernels')
r.raise_for_status()
kernel_list = r.json()
kernel.pop('last_activity')
[ k.pop('last_activity') for k in kernel_list ]
self.assertEqual(kernel_list, [kernel])

Loading…
Cancel
Save