buildframework/helium/tools/common/python/lib/ats3/aste.py
changeset 179 d8ac696cc51f
parent 1 be27ed110b50
equal deleted inserted replaced
1:be27ed110b50 179:d8ac696cc51f
    32 import tempfile
    32 import tempfile
    33 import zipfile
    33 import zipfile
    34 
    34 
    35 from path import path
    35 from path import path
    36 import amara
    36 import amara
       
    37 import ntpath as atspath
       
    38 import jinja2
    37 
    39 
    38 _logger = logging.getLogger('ats3')
    40 _logger = logging.getLogger('ats3')
    39 
    41 
    40 # Shortcuts
    42 # Shortcuts
    41 E = et.Element
    43 E = et.Element
   353         """Parse flash images and creates inserts into 'sets'"""
   355         """Parse flash images and creates inserts into 'sets'"""
   354 
   356 
   355         test_plan.insert_set(image_files=self.flash_images,
   357         test_plan.insert_set(image_files=self.flash_images,
   356                              test_timeout=list(self.test_timeout))
   358                              test_timeout=list(self.test_timeout))
   357                                 
   359                                 
       
   360 class AsteTemplateTestDropGenerator(AsteTestDropGenerator):
       
   361     def getlogdir(self, setd):
       
   362         return self.ASTE_LOG_DIR
       
   363     
       
   364     def aslfiles(self, test_plan):
       
   365         files = []
       
   366         
       
   367         testasset_location = path(test_plan["testasset_location"])
       
   368         for file_ in list(testasset_location.walkfiles()):
       
   369             if file_.endswith('.asl'):
       
   370                 files.append(file_.replace(testasset_location + os.sep, ""))
       
   371         return files
       
   372     
       
   373     def generate_xml(self, test_plan):
       
   374         loader = jinja2.ChoiceLoader([jinja2.FileSystemLoader(os.path.join(os.environ['HELIUM_HOME'], 'tools/common/python/lib/ats3/templates'))])
       
   375         env = jinja2.Environment(loader=loader)
       
   376         template = env.from_string(open(os.path.join(os.environ['HELIUM_HOME'], 'tools/common/python/lib/ats3/aste_template.xml')).read())
       
   377         
       
   378         xmltext = template.render(test_plan=test_plan, os=os, atspath=atspath, atsself=self).encode('ISO-8859-1')
       
   379         return et.ElementTree(et.XML(xmltext))
   358 
   380 
   359 def create_drop(config):
   381 def create_drop(config):
   360     """Create a test drop."""    
   382     """Create a test drop."""    
   361     _logger.debug("initialize test plan")
   383     _logger.debug("initialize test plan")
   362     
   384     
   363     test_plan = AsteTestPlan(config)
   385     test_plan = AsteTestPlan(config)
   364     parser = AsteComponentParser(config)
   386     parser = AsteComponentParser(config)
   365     parser.insert_test_set(test_plan) ######check here if something goes wrong, removed ", path(tsrc)"
   387     parser.insert_test_set(test_plan) ######check here if something goes wrong, removed ", path(tsrc)"
   366     generator = AsteTestDropGenerator()
   388     if config.ats4_enabled.lower() == 'true':
       
   389         generator = AsteTemplateTestDropGenerator()
       
   390     else:
       
   391         generator = AsteTestDropGenerator()
   367     _logger.info("generating drop file: %s" % config.drop_file)
   392     _logger.info("generating drop file: %s" % config.drop_file)
   368     generator.generate(test_plan, output_file=config.drop_file)
   393     generator.generate(test_plan, output_file=config.drop_file)
   369 
   394 
   370 
   395 
   371 def main():
   396 def main():
   403                    default="smoke")     
   428                    default="smoke")     
   404     cli.add_option("--device-language", help="language name e.g. English",
   429     cli.add_option("--device-language", help="language name e.g. English",
   405                    default="English")     
   430                    default="English")     
   406     cli.add_option("--software-release", help="Software release or product name e.g. PPD 52.50",
   431     cli.add_option("--software-release", help="Software release or product name e.g. PPD 52.50",
   407                    default="")     
   432                    default="")     
       
   433     cli.add_option("--ats4-enabled", help="ATS4 enabled", default="False")
   408     cli.add_option("--verbose", help="Increase output verbosity",
   434     cli.add_option("--verbose", help="Increase output verbosity",
   409                    action="store_true", default=False)
   435                    action="store_true", default=False)
   410 
   436 
   411     opts, _ = cli.parse_args()
   437     opts, _ = cli.parse_args()
   412 
   438