JIRA: BOTTLENECKS-29
[bottlenecks.git] / vstf / vstf / controller / reporters / reporter.py
index 1c256c6..e77ae34 100755 (executable)
@@ -1,21 +1,28 @@
-#!/usr/bin/python
-# -*- coding: utf8 -*-
-# author: wly
-# date: 2015-05-29
-# see license for license details
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
 import os
 import argparse
 import logging
 import time
 
-from vstf.controller.reporters.report.pdf.pdfcreator import PdfvSwitchCreator
-from vstf.controller.reporters.report.html.htmlcreator import HtmlvSwitchCreator
-from vstf.controller.reporters.report.data_factory import CommonData, TaskData, ScenarioData, HistoryData
+from vstf.controller.reporters.report.provider.html_provider import HtmlProvider
+from vstf.controller.reporters.report.provider.pdf_provider import PdfProvider
+from vstf.controller.settings.template_settings import TemplateSettings
+from vstf.controller.reporters.report.data_factory import TaskData
+from vstf.controller.reporters.report.html.htmlcreator import HtmlCreator
+from vstf.controller.reporters.report.pdf.pdfcreator import PdfCreator
 from vstf.controller.database.dbinterface import DbManage
 from vstf.controller.settings.mail_settings import MailSettings
 from vstf.controller.reporters.mail.sendmail import SendMail
 from vstf.controller.settings.html_settings import HtmlSettings
-from vstf.controller.reporters.report.provider.html_provider import StyleProvider
+from vstf.controller.reporters.report.candy_generator import CandyGenerator
 import vstf.common.constants as cst
 
 
@@ -31,37 +38,44 @@ class Report(object):
         """
         self._dbase = dbase
         self._rpath = "."
+        self._mail_settings = MailSettings()
         if os.path.exists(rpath):
             self._rpath = rpath
 
     def create_pdf(self, taskid):
-        common_data = CommonData(taskid, self._dbase)
-        scenario_list = common_data.get_scenariolist()
-        history_data = HistoryData(taskid, self._dbase)
+        task = TaskData(taskid, self._dbase)
+        scenario_list = task.common.get_scenariolist()
+        creator = CandyGenerator(task)
         attach_list = []
         for scenario in scenario_list:
-            out_file = os.path.join(self._rpath, "vstf_report_%s_%s.pdf" % (scenario, time.strftime(cst.TIME_STR)))
+            out_file = os.path.join(self._rpath, "vstf_report_%s_%s.pdf" % (scenario, time.strftime(cst.TIME_FORMAT3)))
             LOG.info(out_file)
-            scenario_data = ScenarioData(taskid, self._dbase, scenario)
-            pdf = PdfvSwitchCreator(out_file, common_data, scenario_data, history_data)
-            if pdf:
-                pdf.create()
-                attach_list.append(out_file)
+            creator.create(scenario)
+            info = TemplateSettings()
+            provider = PdfProvider(info.settings)
+            reporter = PdfCreator(provider)
+            reporter.create(out_file)
+            attach_list.append(out_file)
+
         if attach_list:
             self._mail_settings.mset_attach(attach_list)
 
     def create_html(self, taskid):
-        task_data = TaskData(taskid, self._dbase)
+        task = TaskData(taskid, self._dbase)
+
+        creator = CandyGenerator(task)
+        creator.create_all()
 
         html_settings = HtmlSettings()
+        info = TemplateSettings()
         LOG.info(html_settings.settings)
 
-        provider = StyleProvider(html_settings.settings)
+        provider = HtmlProvider(info.settings, html_settings.settings)
         out_file = os.path.join(self._rpath, "mail.html")
         LOG.info(out_file)
 
-        html = HtmlvSwitchCreator(task_data, provider, out_file)
-        content = html.create()
+        html = HtmlCreator(provider)
+        content = html.create(out_file)
 
         self._mail_settings.mset_subtype('html')
         self._mail_settings.mset_content(content)