def test_formatDateTime(self): bdt = BzDateTime("2018-11-24T17:45:21") r = bdt.formatDateTime("%Y-%b-%d") self.assertSame(r, "2018-Nov-24") r = bdt.formatDateTime("%Y-%b-%d %a %H:%M:%S") self.assertSame(r, "2018-Nov-24 Sat 17:45:21")
def test_addDays(self): """ add days and seconds to a BzDateTime """ bdt = BzDateTime("2018-11-24T17:45:21") bdt2 = bdt.addDays(2) self.assertSame(bdt2, "2018-11-26T17:45:21") bdt3 = bdt.addDaysSeconds(1, 1*3600 + 2*60 + 3) self.assertSame(bdt3, "2018-11-25T18:47:24")
def test_to_date(self): """ convert a BzDateTime to a datetime.date """ bdt = BzDateTime("2008-10-24T07:35:51") pyd = bdt.to_date() self.assertTrue(isinstance(pyd, datetime.date), "pyd is a datetime.date") self.assertSame(pyd.year, 2008) self.assertSame(pyd.month, 10) self.assertSame(pyd.day, 24)
def test_creation_from_date(self): """ create from a datetime.date or datetime.datetime """ pd = datetime.date(2011, 6, 13) bzdt = BzDateTime(pd) self.assertSame(bzdt, "2011-06-13T00:00:00") pdt2 = datetime.datetime(2010, 5, 12, 23, 30, 1) bzdt2 = BzDateTime(pdt2) self.assertSame(bzdt2, "2010-05-12T23:30:01")
def test_to_datetime(self): """ convert a BzDateTime to a datetime.datetime """ bdt = BzDateTime("2008-10-24T07:35:51") pydt = bdt.to_datetime() self.assertTrue(isinstance(pydt, datetime.datetime), "pydt is a datetime.datetime") self.assertSame(pydt.year, 2008) self.assertSame(pydt.month, 10) self.assertSame(pydt.day, 24) self.assertSame(pydt.hour, 7) self.assertSame(pydt.minute, 35) self.assertSame(pydt.second, 51)
def test_toTuple(self): """ convert a BzDateTime to a tuple """ dt = BzDateTime("2011-04-14T07:35:51") y, m, d, hh, mm, ss = dt.toTuple_ymdhms() self.assertSame(y, 2011) self.assertSame(m, 4) self.assertSame(d, 14) self.assertSame(hh, 7) self.assertSame(mm, 35) self.assertSame(ss, 51) y, m, d = dt.toTuple_ymd() self.assertSame(y, 2011) self.assertSame(m, 4) self.assertSame(d, 14)
def test_to_dayInt(self): bzd = BzDateTime("1970-01-01") r = bzd.to_dayInt() self.assertSame(r, 0, "1970-Jan-01 is day 0") bzd = BzDateTime("1971-02-03") r = bzd.to_dayInt() self.assertSame(r, 398, "1971-Feb-03 is day 398") bzd = BzDateTime("1969-12-25") r = bzd.to_dayInt() self.assertSame(r, -7, "1969-Dec-25 is day -7")
def test_creation_bzFormat(self): """ create a BzDateTime using variations of bz format, e.g. "2017-12-31T23:59:58" """ d = BzDateTime("2012-06-04") self.assertSame(d, "2012-06-04T00:00:00") d = BzDateTime("2012-05-04T07") self.assertSame(d, "2012-05-04T07:00:00") d = BzDateTime("2012-04-04T07:35") self.assertSame(d, "2012-04-04T07:35:00") d = BzDateTime("2011-04-04T07:35:51") self.assertSame(d, "2011-04-04T07:35:51") d = BzDateTime("2011-04-04 07:35:51") self.assertSame(d, "2011-04-04T07:35:51")
def test_now(self): bdt = BzDateTime.now() self.assertTrue(isinstance(bdt, BzDateTime), "BzDateTime.now() returns a BzDateTime") year, month, day, hh, mm, ss = bdt.toTuple_ymdhms() self.assertTrue(year >= 2018, "(assumes we are not testing in the past)") self.assertTrue(month >= 1) self.assertTrue(month <= 12) self.assertTrue(day >= 1) self.assertTrue(day <= 31) self.assertTrue(hh >= 0) self.assertTrue(hh <= 23) self.assertTrue(mm >= 0) self.assertTrue(mm <= 59) self.assertTrue(ss >= 0) self.assertTrue(ss <= 60) # for leap seconds
def test_creation_allDigits(self): """ create a BzDateTime using all-digit format """ d = BzDateTime("20171231") self.assertSame(d, "2017-12-31T00:00:00") self.assertSame(str(d), "2017-12-31T00:00:00") d = BzDateTime("19870615") self.assertSame(d, "1987-06-15T00:00:00") d = BzDateTime("1989061521") self.assertSame(d, "1989-06-15T21:00:00") d = BzDateTime("199106152153") self.assertSame(d, "1991-06-15T21:53:00") d = BzDateTime("199106152153somenonsensehere") self.assertSame(d, "1991-06-15T21:53:00") d = BzDateTime("19920615215301") self.assertSame(d, "1992-06-15T21:53:01")
def test_creation_from_int(self): d = BzDateTime(15) self.assertSame(d, "1970-01-16T00:00:00")
def test_creation_from_BzDate(self): """ create a BzDateTime from a BzDate or BzDateTime """ d = BzDate("2012-06-04") d2 = BzDateTime(d) self.assertSame(d2, "2012-06-04T00:00:00")
def test_creation_from_string_2(self): bzdt1 = BzDateTime("2017-11-28T13:45:07") self.assertSame(bzdt1, "2017-11-28T13:45:07") bzdt2 = BzDateTime("2017-11-28 hello world 13 45 07") self.assertSame(bzdt2, "2017-11-28T13:45:07")