53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
|
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 + "plugins/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):
|
||
|
date_url = self.URL + "plugins/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()
|
||
|
|