def test(date_constructor=pydate): """relies on being able to construct the passed-in type of date with YYYY, mm, dd""" if date_constructor == zopedatetime: now = zopedatetime(2006, 1, 1) else: now = pydatetime(2006, 1, 1) for expected, input in expectedmap(date_constructor).items(): wrapped = DateWrapper(input) wrapped.now = now got = wrapped.prettystr() try: assert got == expected except AssertionError: print "** Test failed: expected %s, got %s" % (expected, got)
def __init__(self, date): if isinstance(date, basestring): # convert it to a pydatetime date = parse(date) if isinstance(date, pydatetime) or isinstance(date, pydate): # intentionally not elif self.now = pydate.today() self.datediff = lambda d1, d2: d1.toordinal() - d2.toordinal() self.yeardiff = lambda d1, d2: d1.year - d2.year elif isinstance(date, zopedatetime): self.now = zopedatetime() self.datediff = lambda d1, d2: d1.JulianDay() - d2.JulianDay() self.yeardiff = lambda d1, d2: d1.year() - d2.year() else: raise ValueError('pretty_date: Unknown date object: %s' % date.__class__) self.date = date
def _get_new_id(self): # if you don't like this # return zopedatetime().millis() # this is informative return zopedatetime().strftime('%Y%m%d%H%M%S')