From 5d80a46455f11add651383052467650638ecbd24 Mon Sep 17 00:00:00 2001 From: Min RK Date: Sat, 12 Nov 2016 16:45:56 -0800 Subject: [PATCH] use Z isoformat in UTC timestamps instead of +00:00 --- notebook/services/contents/tz.py | 22 ++++++++----------- notebook/services/kernels/kernelmanager.py | 4 ++-- .../sessions/tests/test_sessionmanager.py | 16 +++++++------- .../sessions/tests/test_sessions_api.py | 5 +++++ 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/notebook/services/contents/tz.py b/notebook/services/contents/tz.py index b315d532d12..1df39e51d42 100644 --- a/notebook/services/contents/tz.py +++ b/notebook/services/contents/tz.py @@ -5,22 +5,11 @@ 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_method(*args, **kwargs): 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') diff --git a/notebook/services/kernels/kernelmanager.py b/notebook/services/kernels/kernelmanager.py index 87656e2af3c..e561d39832b 100644 --- a/notebook/services/kernels/kernelmanager.py +++ b/notebook/services/kernels/kernelmanager.py @@ -17,7 +17,7 @@ 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 @@ def kernel_model(self, kernel_id): 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], } diff --git a/notebook/services/sessions/tests/test_sessionmanager.py b/notebook/services/sessions/tests/test_sessionmanager.py index 1e02026158e..23a023cb8a6 100644 --- a/notebook/services/sessions/tests/test_sessionmanager.py +++ b/notebook/services/sessions/tests/test_sessionmanager.py @@ -74,7 +74,7 @@ def test_get_session(self): '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 @@ def test_list_sessions(self): 'kernel': { 'id': 'A', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } }, { @@ -127,7 +127,7 @@ def test_list_sessions(self): 'kernel': { 'id': 'B', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } }, { @@ -138,7 +138,7 @@ def test_list_sessions(self): 'kernel': { 'id': 'C', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } } @@ -164,7 +164,7 @@ def test_list_sessions_dead_kernel(self): 'kernel': { 'id': 'B', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } } @@ -185,7 +185,7 @@ def test_update_session(self): 'kernel': { 'id': 'A', 'name':'julia', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } } @@ -216,7 +216,7 @@ def test_delete_session(self): 'kernel': { 'id': 'A', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } }, { @@ -227,7 +227,7 @@ def test_delete_session(self): 'kernel': { 'id': 'C', 'name':'python', - 'last_activity': dummy_date, + 'last_activity': dummy_date_s, 'execution_state': 'idle', } } diff --git a/notebook/services/sessions/tests/test_sessions_api.py b/notebook/services/sessions/tests/test_sessions_api.py index 1d19bc4b215..a017b4ba585 100644 --- a/notebook/services/sessions/tests/test_sessions_api.py +++ b/notebook/services/sessions/tests/test_sessions_api.py @@ -225,6 +225,8 @@ def test_modify_kernel_name(self): r = requests.get(url_path_join(self.base_url(), '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 @@ def test_modify_kernel_id(self): r = requests.get(url_path_join(self.base_url(), '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])