def test_patch_dates(self): self.assertEquals(dates.clean('2017-1-3'), '2017-01-03') self.assertEquals(dates.clean('2017-3'), '2017-03') self.assertEquals(dates.clean('2017-0'), '2017') self.assertEquals(dates.clean('2017-5-2T00:00:00'), '2017-05-02') self.assertEquals(dates.clean('2017-5-2T10:00:00'), '2017-05-02T10:00:00') # noqa
def test_parse_date(self): self.assertEquals(dates.clean(None), None) self.assertEquals(dates.clean(''), None) self.assertEquals(dates.clean('2017-04-04'), '2017-04-04') # self.assertEquals(parse_date('2017-4-4'), '2017-04-04') # TODO: make this yield an imprecise date somehow? self.assertEquals(dates.clean('4/2017', format="%m/%Y"), '2017-04-01') self.assertEquals(dates.clean('4/2xx017', format="%m/%Y"), None)
def test_convert_datetime(self): dt = datetime.utcnow() iso, _ = dt.isoformat().split('.', 1) self.assertEquals(dates.clean(dt), iso) self.assertTrue(dates.validate(iso)) dt = datetime.utcnow().date() iso = dt.isoformat() self.assertEquals(dates.clean(dt), iso)
def test_parse_date(self): self.assertEquals(dates.clean(None), None) self.assertEquals(dates.clean(''), None) self.assertEquals(dates.clean('2017-04-04'), '2017-04-04') self.assertEquals(dates.clean('2017-4-4'), '2017-04-04') self.assertEquals(dates.clean('23-AUG-2001'), '2001-08-23') self.assertEquals(dates.clean('09-jun-1993'), '1993-06-09') # TODO: make this yield an imprecise date somehow? self.assertEquals(dates.clean('4/2017', format="%m/%Y"), '2017-04-01') self.assertEquals(dates.clean('4/2xx017', format="%m/%Y"), None)
def retrieved_at(self, date): self._meta_text('retrieved_at', dates.clean(date))
def published_at(self, date): self._meta_text('published_at', dates.clean(date))
def modified_at(self, date): self._meta_text('modified_at', dates.clean(date))
def authored_at(self, date): self._meta_text('authored_at', dates.clean(date))
def date(self, date): self._meta_text('date', dates.clean(date))
def test_guess_date(self): self.assertEquals(dates.clean('12.4.2017'), '2017-04-12')
def test_chop_dates(self): self.assertEquals(dates.clean('2017-00-00'), '2017') self.assertEquals(dates.clean('2017-00-00T00:00:00'), '2017') self.assertEquals(dates.clean('2017-00-00T12:03:49'), '2017') self.assertEquals(dates.clean('2017-01-01T00:00:00'), '2017-01-01')
def add_date(self, obj): self.meta.setdefault('dates', []) date = dates.clean(obj) if date is not None and date not in self.meta['dates']: self.meta['dates'].append(date) self.update_meta()