buildframework/helium/sf/python/pythoncore/lib/pythoncorecpythontests/test_matti.py
changeset 587 85df38eb4012
child 628 7c4a911dc066
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildframework/helium/sf/python/pythoncore/lib/pythoncorecpythontests/test_matti.py	Tue Apr 27 08:33:08 2010 +0300
@@ -0,0 +1,211 @@
+# -*- coding: latin-1 -*-
+
+#============================================================================ 
+#Name        : test_matti.py 
+#Part of     : Helium 
+
+#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#All rights reserved.
+#This component and the accompanying materials are made available
+#under the terms of the License "Eclipse Public License v1.0"
+#which accompanies this distribution, and is available
+#at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+#Initial Contributors:
+#Nokia Corporation - initial contribution.
+#
+#Contributors:
+#
+#Description:
+#===============================================================================
+
+""" Testing MATTI framework. """
+
+# pylint: disable-msg=E1101
+
+import logging
+logging.getLogger().setLevel(logging.ERROR)
+import os
+#import shutil
+from path import path
+import ats3.aste
+import ats3.matti.MattiDrops
+#from lxml import objectify
+#from lxml import etree
+import tempfile
+
+TEST_FILE_NAME = 'test.xml'
+ZIP_FILE_NAME = os.path.join(tempfile.mkdtemp(), 'MATTIDrop.zip')
+
+class Bunch(object):
+    """do something with the paramerters passed to it"""    
+    def __init__(self, **kwargs): 
+        self.__dict__.update(kwargs)
+    
+
+def equal_xml(result, expect):
+    """Check the equality of the given XML snippets. """
+#    logging.info(" expect %s" % expect)
+#    xml1 = objectify.fromstring(expect)
+#    expect1 = etree.tostring(xml1)
+#    logging.info(" expect1 %s" % expect1)
+#    logging.info(" expect2 -------------%s" % expect2)
+#            
+#    xml2 = objectify.fromstring(result)
+#    result2 = etree.tostring(xml2)        
+#    self.assertEquals(expect1, result1)
+#
+#    if xml1.tag != xml2.tag:
+#        return False
+#    if xml1.attrib != xml2.attrib:
+#        return False
+#    if xml1.text:
+#        if not xml2.text:
+#            return False
+#    if xml2.text:
+#        if not xml1.text:
+#            return False
+#    if xml1.text and xml2.text and xml1.text.strip() != xml2.text.strip():
+#        return False
+#    if xml1.tail is not None and xml2.tail is not None:
+#        if xml1.tail.strip() != xml2.tail.strip():
+#            return False
+#    elif xml1.tail != xml2.tail:
+#        return False
+#    children1 = list(xml1.getchildren())
+#    children2 = list(xml2.getchildren())
+#    if len(children1) != len(children2):
+#        return False
+#    for child1, child2 in zip(children1, children2):
+#        return equal_xml(child1, child2)
+#    return True
+    if expect:
+        return result   
+
+
+def setup_module():
+    """ stuff to do before running the tests """
+    pass    
+    
+def teardown_module():
+    """ stuff to do after running the tests """
+    if os.path.exists(TEST_FILE_NAME):
+        os.remove(TEST_FILE_NAME)
+    if os.path.exists(ZIP_FILE_NAME):
+        os.remove(ZIP_FILE_NAME)
+    
+    
+class TestPlanMatti():
+    """ test MattiDrop.py """
+    def __init__(self): 
+        self.config = None
+        self.tp_result = None
+        
+        (_, self.image1) = tempfile.mkstemp()
+        (_, self.image2) = tempfile.mkstemp()
+        (_, self.image3) = tempfile.mkstemp()
+        (_, self.sis1) = tempfile.mkstemp()
+        (_, self.sis2) = tempfile.mkstemp()
+            
+    def test_all_present(self):
+        """ test mattiDrops.py with all parameters present and correct"""
+        teardown_module()
+        opts = Bunch(build_drive="z:", 
+             matti_scripts=os.path.join(os.environ['TEST_DATA'], 'data/matti'),
+             flash_images = '%s,%s,%s' % (self.image1, self.image2, self.image3),
+             report_email="", harness="STIF", 
+             file_store=path(), testrun_name="testrun",  
+             device_type="product", device_hwid="5425", diamonds_build_url="", drop_file=ZIP_FILE_NAME, 
+             minimum_flash_images="2", plan_name="matti_test_plan", 
+             sis_files = '%s,%s' % (self.sis1, self.sis2),
+             template_loc=os.path.join(os.path.dirname(__file__), '../ats3/matti/template/matti_demo.xml'), 
+             test_timeout="60", verbose="false")
+       
+        self.config = ats3.matti.MattiDrops.Configuration(opts)
+        self.tp_result = ats3.matti.MattiDrops.create_drop(self.config)
+        assert os.path.exists(ZIP_FILE_NAME)
+        assert os.path.exists(TEST_FILE_NAME)
+        #shutil.copy(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_all_present.xml'))
+        #equal_xml(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_all_present.xml'))
+        
+    def test_no_sis_or_flash_files(self):
+        """test mattiDrops.py with no sis or flash files in the parameters"""
+        teardown_module()
+        opts = Bunch(build_drive="z:", 
+             matti_scripts=os.path.join(os.environ['TEST_DATA'], 'data/matti'),
+             flash_images = "",
+             report_email="", harness="STIF", 
+             file_store=path(), testrun_name="testrun",  
+             device_type="product", device_hwid="5425", diamonds_build_url="", drop_file=ZIP_FILE_NAME, 
+             minimum_flash_images="2", plan_name="matti_test_plan", 
+             sis_files= "", 
+             template_loc=os.path.join(os.path.dirname(__file__), '../ats3/matti/template/matti_demo.xml'), 
+             test_timeout="60", verbose="true")
+       
+        self.config = ats3.matti.MattiDrops.Configuration(opts)
+        self.tp_result = ats3.matti.MattiDrops.create_drop(self.config)
+        assert os.path.exists(ZIP_FILE_NAME)
+        assert os.path.exists(TEST_FILE_NAME)
+        #shutil.copy(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_no_sis_or_flash.xml'))
+        #equal_xml(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_no_sis_or_flash.xml'))
+
+
+    def test_no_files(self):
+        """ test mattiDtops.py with no filespresent at all"""
+        teardown_module()
+        opts = Bunch(build_drive="z:", 
+             matti_scripts=tempfile.mkdtemp(), 
+             flash_images = "",
+             report_email="", harness="STIF", 
+             file_store=path(), testrun_name="testrun",  
+             device_type="product", device_hwid="5425", diamonds_build_url="", drop_file=ZIP_FILE_NAME, 
+             minimum_flash_images="2", plan_name="matti_test_plan", 
+             sis_files= "", 
+             template_loc=os.path.join(os.path.dirname(__file__), '../ats3/matti/template/matti_demo.xml'), 
+             test_timeout="60", verbose="true")
+        self.config = ats3.matti.MattiDrops.Configuration(opts)
+        self.tp_result = ats3.matti.MattiDrops.create_drop(self.config)
+        assert not os.path.exists(ZIP_FILE_NAME)
+        assert os.path.exists(TEST_FILE_NAME)
+        #shutil.copy(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_no_files.xml'))
+        #equal_xml(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_no_files.xml'))
+
+    def test_no_params(self):
+        """test MattiDrops.py with no parameters present at all"""
+        teardown_module()
+        opts = Bunch(build_drive="", 
+             matti_scripts="", 
+             flash_images = "",
+             report_email="", harness="", 
+             file_store="", testrun_name="",  
+             device_type="", device_hwid="", diamonds_build_url="", drop_file="", 
+             minimum_flash_images="", plan_name="", 
+             sis_files= "", 
+             template_loc="", 
+             test_timeout="", verbose="true")
+       
+        self.config = ats3.matti.MattiDrops.Configuration(opts)
+        self.tp_result = ats3.matti.MattiDrops.create_drop(self.config)
+        assert not os.path.exists(ZIP_FILE_NAME)
+        assert not os.path.exists(TEST_FILE_NAME)
+
+    def test_some_not_present(self):
+        """ test MattiDrops.py with an extra file not present in the dir"""
+        teardown_module()
+        opts = Bunch(build_drive="z:", 
+             matti_scripts=os.path.join(os.environ['TEST_DATA'], 'data/matti'),
+             flash_images = '%s,%s,%s' % (self.image1, self.image2, self.image3),
+             report_email="", harness="STIF", 
+             file_store=path(), testrun_name="testrun",  
+             device_type="product", device_hwid="5425", diamonds_build_url="", drop_file=ZIP_FILE_NAME, 
+             minimum_flash_images="2", plan_name="matti_test_plan", 
+             sis_files = '%s,%s' % (self.sis1, self.sis2),
+             template_loc=os.path.join(os.path.dirname(__file__), '../ats3/matti/template/matti_demo.xml'), 
+             test_timeout="60", verbose="false")
+       
+        self.config = ats3.matti.MattiDrops.Configuration(opts)
+        self.tp_result = ats3.matti.MattiDrops.create_drop(self.config)
+        assert os.path.exists(ZIP_FILE_NAME)
+        assert os.path.exists(TEST_FILE_NAME)
+        #shutil.copy(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_some_not_present.xml'))
+        #equal_xml(TEST_FILE_NAME, os.path.join(TMPDIR, 'test_some_not_present.xml'))