import WebInterfaceTestClass class unittests(WebInterfaceTestClass.WebInterfaceTestClass): def test_get_date(self): date = self._getCurrentDate() def test_change_date(self): now = self._getCurrentDate() ## copy current time new_date = dict(now) ## move three minutes forward (more is not nice because of screensavers) new_date["minute"] = (now["minute"] + 3) % 60 ## in case of minute-overflow we also have to move the hour a little bit forward new_date["hour"] = now["hour"] + ((now["minute"] + 3) / 60) ## move forward ... self._setDate(new_date) self.assertEquals(new_date, self._getCurrentDate()) ## ... and backward self._setDate(now) self.assertEquals(now, self._getCurrentDate()) def _getCurrentDate(self): date_url = self.URL + "date" self.register_auth(date_url) self.cmd.go(date_url) self.cmd.find("Data.Status.Plugins.date=([0-9]+/[0-9]+/[0-9]+/[0-9]+/[0-9]+/[0-9]+)$", "m") dateNumbers = self.locals["__match__"].split("/") self.assertEquals(len(dateNumbers), 6) ## we ignore seconds dateField = { "year" : int(dateNumbers[0]), "month" : int(dateNumbers[1]), "day" : int(dateNumbers[2]), "hour" : int(dateNumbers[3]), "minute" : int(dateNumbers[4])} return dateField def _setDate(self, date): """for now we have to use this function instead of the one below""" date_url = self.URL + "date?store=1&year=%d&month=%d&day=%d&hour=%d&minute=%d" % (date["year"], date["month"], date["day"], date["hour"], date["minute"]) self.register_auth(date_url) self.cmd.go(date_url) def _setDateBroken(self, date): """this should work, but the parsing of twill seems to be broken""" date_url = self.URL + "date" self.register_auth(date_url) self.cmd.go(date_url) self.cmd.formvalue("set_date", "year", str(date["year"])) self.cmd.formvalue("set_date", "month", str(date["month"])) self.cmd.formvalue("set_date", "day", str(date["day"])) self.cmd.formvalue("set_date", "hour", str(date["hour"])) self.cmd.formvalue("set_date", "minute", str(date["minute"])) self.cmd.submit()