1
from time import strptime
2
from datetime import datetime
4
from hwtest.report import Report
5
from hwtest.reports.data import convert_bool
8
class SummaryReport(Report):
9
"""Report for summary related data types."""
11
def register_dumps(self):
12
for (dt, dh) in [("live_cd", self.dumps_value),
13
("system_id", self.dumps_value),
14
("distribution", self.dumps_value),
15
("distroseries", self.dumps_value),
16
("architecture", self.dumps_value),
17
("private", self.dumps_value),
18
("contactable", self.dumps_value),
19
("date_created", self.dumps_datetime)]:
20
self._manager.handle_dumps(dt, dh)
22
def register_loads(self):
23
for (lt, lh) in [("live_cd", self.loads_bool),
24
("system_id", self.loads_str),
25
("distribution", self.loads_str),
26
("distroseries", self.loads_str),
27
("architecture", self.loads_str),
28
("private", self.loads_bool),
29
("contactable", self.loads_bool),
30
("date_created", self.loads_datetime)]:
31
self._manager.handle_loads(lt, lh)
33
def dumps_value(self, obj, parent):
34
parent.setAttribute("value", str(obj))
36
def dumps_datetime(self, obj, parent):
37
parent.setAttribute("value", str(obj).split(".")[0])
39
def loads_bool(self, node):
40
return convert_bool(node.getAttribute("value"))
42
def loads_str(self, node):
43
return str(node.getAttribute("value"))
45
def loads_datetime(self, node):
46
value = node.getAttribute("value")
47
return datetime(*strptime(value, "%Y-%m-%d %H:%M:%S")[0:7])