~bladernr/checkbox/1095713-set-pipefail-on-sleep-jobs

« back to all changes in this revision

Viewing changes to hwtest/reports/summary.py

  • Committer: Marc Tardif
  • Date: 2007-11-01 17:09:53 UTC
  • mfrom: (44.1.50 bug-152956)
  • Revision ID: marc.tardif@canonical.com-20071101170953-xhwsegkpj90y3f37
Added report dumping and loading functionality to fix bug #152956.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from time import strptime
 
2
from datetime import datetime
 
3
 
 
4
from hwtest.report import Report
 
5
from hwtest.reports.data import convert_bool
 
6
 
 
7
 
 
8
class SummaryReport(Report):
 
9
    """Report for summary related data types."""
 
10
 
 
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)
 
21
 
 
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)
 
32
 
 
33
    def dumps_value(self, obj, parent):
 
34
        parent.setAttribute("value", str(obj))
 
35
 
 
36
    def dumps_datetime(self, obj, parent):
 
37
        parent.setAttribute("value", str(obj).split(".")[0])
 
38
 
 
39
    def loads_bool(self, node):
 
40
        return convert_bool(node.getAttribute("value"))
 
41
 
 
42
    def loads_str(self, node):
 
43
        return str(node.getAttribute("value"))
 
44
 
 
45
    def loads_datetime(self, node):
 
46
        value = node.getAttribute("value")
 
47
        return datetime(*strptime(value, "%Y-%m-%d %H:%M:%S")[0:7])