def test(self): for minutes in 1439, 600, 1, 0, -1, -600, -1439: info1 = tzinfo(minutes) info2 = tzinfo(minutes) self.assertEqual(info1, info2) self.assert_(info1 is info2) self.assert_(pickle.loads(pickle.dumps(info1)) is info1) self.assertEqual(info1.utcoffset(None), datetime.timedelta(minutes=minutes)) self.assertEqual(info1.dst(None), None) self.assertEqual(info1.tzname(None), None) for minutes in 900000, 1440*60, -1440*60, -900000: self.assertRaises(ValueError, tzinfo, minutes)
def test_min_max_validation(self): self.getRootFolder()['test'] = DatetimeTest() transaction.commit() # submit value for d1 that is too low response = self.publish('/test/edit.html', form={ 'UPDATE_SUBMIT' : '', 'field.d1' : str(datetime(2002, 12, 31, tzinfo=tzinfo(0))) }) self.assertEqual(response.getStatus(), 200) self.assert_(validationErrorExists('d1', 'Value is too small', response.getBody())) # submit value for i1 that is too high response = self.publish('/test/edit.html', form={ 'UPDATE_SUBMIT' : '', 'field.d1' : str(datetime(2021, 1, 1, tzinfo=tzinfo(0))) }) self.assertEqual(response.getStatus(), 200) self.assert_(validationErrorExists('d1', 'Value is too big', response.getBody()))
def test_invalid_value(self): self.getRootFolder()['test'] = DatetimeTest() transaction.commit() # submit a value for d3 that isn't allowed response = self.publish('/test/edit.html', form={ 'UPDATE_SUBMIT' : '', 'field.d3' : str(datetime(2003, 2, 1, tzinfo=tzinfo(0))) }) self.assertEqual(response.getStatus(), 200) self.assert_(invalidValueErrorExists('d3', response.getBody()))
def test_submit_editform(self): self.getRootFolder()['test'] = DatetimeTest() transaction.commit() d1 = datetime(2003, 2, 1, tzinfo=tzinfo(0)) d2 = datetime(2003, 2, 2, tzinfo=tzinfo(0)) d3 = datetime(2003, 10, 15, tzinfo=tzinfo(0)) # submit edit view response = self.publish('/test/edit.html', form={ 'UPDATE_SUBMIT' : '', 'field.d1' : str(d1), 'field.d2' : str(d2), 'field.d3' : str(d3) }) self.assertEqual(response.getStatus(), 200) self.assert_(updatedMsgExists(response.getBody())) # check new values in object object = traverse(self.getRootFolder(), 'test') self.assertEqual(object.d1, d1) self.assertEqual(object.d2, d2) self.assertEqual(object.d3, d3)
def test_missing_value(self): self.getRootFolder()['test'] = DatetimeTest() transaction.commit() # submit missing values for d2 and d3 response = self.publish('/test/edit.html', form={ 'UPDATE_SUBMIT' : '', 'field.d2' : '', 'field.d3-empty-marker' : '' }) self.assertEqual(response.getStatus(), 200) self.assert_(updatedMsgExists(response.getBody())) # check new values in object object = traverse(self.getRootFolder(), 'test') self.assert_(object.d2 is None) # default missing_value for dates # 2000-1-1 is missing_value for d3 self.assertEqual(object.d3, datetime(2000, 1, 1, tzinfo=tzinfo(0)))
def testParseDatetimetz(self): from datetime import datetime from zope.app.datetimeutils import parseDatetimetz, tzinfo self.assertEqual(parseDatetimetz('1999-12-31T01:02:03.037-00:30'), datetime(1999, 12, 31, 1, 2, 3, 37000, tzinfo(-30)))
def __init__(self): self.d1 = datetime(2003, 4, 6, tzinfo=tzinfo(0)) self.d2 = datetime(2003, 8, 6, tzinfo=tzinfo(0)) self.d3 = None