From 943cbe0838273c353c6ee70aa55d8e033f4f791d Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Sun, 18 May 2014 15:14:36 -0700 Subject: [PATCH] MediaFile: allow setting date fields to None --- beets/mediafile.py | 5 ++++- test/test_mediafile_edge.py | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/beets/mediafile.py b/beets/mediafile.py index 91e720c09..917e9c842 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -1057,7 +1057,10 @@ class DateField(MediaField): return None def __set__(self, mediafile, date): - self._set_date_tuple(mediafile, date.year, date.month, date.day) + if date is None: + self._set_date_tuple(mediafile, None, None, None) + else: + self._set_date_tuple(mediafile, date.year, date.month, date.day) def __delete__(self, mediafile): super(DateField, self).__delete__(mediafile) diff --git a/test/test_mediafile_edge.py b/test/test_mediafile_edge.py index 2a9bccc57..b0b45da0c 100644 --- a/test/test_mediafile_edge.py +++ b/test/test_mediafile_edge.py @@ -235,6 +235,13 @@ class TypeTest(unittest.TestCase): self.mf.track = None self.assertEqual(self.mf.track, 0) + def test_set_date_to_none(self): + self.mf.date = None + self.assertIsNone(self.mf.date) + self.assertIsNone(self.mf.year) + self.assertIsNone(self.mf.month) + self.assertIsNone(self.mf.day) + class SoundCheckTest(unittest.TestCase): def test_round_trip(self):