From 6d2ac7a100a0e21fc161ff4c5a4b4de6d9f277dc Mon Sep 17 00:00:00 2001 From: Mark Greenwood Date: Mon, 13 Jul 2015 06:35:34 +0100 Subject: [PATCH] Fix #1218 Output a track's Last-Modified stamp in ISO 8601 format, as MPD does. Output nothing if track has no last-modified stamp. The test has to use datetime to work out what the output will look like, because it is local-time zone dependant. --- mopidy/mpd/translator.py | 2 +- tests/mpd/test_translator.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mopidy/mpd/translator.py b/mopidy/mpd/translator.py index 4dc5a5b7..0e7cb1ff 100644 --- a/mopidy/mpd/translator.py +++ b/mopidy/mpd/translator.py @@ -89,7 +89,7 @@ def track_to_mpd_format(track, position=None, stream_title=None): if track.last_modified is not None: datestring = datetime.datetime.fromtimestamp( - track.last_modified // 1000).strftime('%Y-%m-%dT%H:%M:%S%Z') + track.last_modified // 1000).isoformat() result.append(('Last-Modified', datestring)) if track.musicbrainz_id is not None: diff --git a/tests/mpd/test_translator.py b/tests/mpd/test_translator.py index 812c1510..39ce34e6 100644 --- a/tests/mpd/test_translator.py +++ b/tests/mpd/test_translator.py @@ -1,5 +1,6 @@ from __future__ import absolute_import, unicode_literals +import datetime import unittest from mopidy.internal import path @@ -81,6 +82,12 @@ class TrackMpdFormatTest(unittest.TestCase): def test_track_to_mpd_format_with_last_modified(self): track = self.track.replace(last_modified=995303899000) + # Due to this being local time-zone dependant, we have + # to calculate what the Last-Modified output will look like + # on the machine where the tests are being run. So this only tests + # that the output is actually there. + datestring = datetime.datetime.fromtimestamp( + track.last_modified // 1000).isoformat() result = translator.track_to_mpd_format(track) self.assertIn(('file', 'a uri'), result) self.assertIn(('Time', 137), result) @@ -94,7 +101,7 @@ class TrackMpdFormatTest(unittest.TestCase): self.assertIn(('Track', '7/13'), result) self.assertIn(('Date', '1977-01-01'), result) self.assertIn(('Disc', 1), result) - self.assertIn(('Last-Modified', '2001-07-16T18:18:19'), result) + self.assertIn(('Last-Modified', datestring), result) self.assertNotIn(('Comment', 'a comment'), result) self.assertEqual(len(result), 13)