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):