Salome HOME
sat job: be able to pass global options to a specific command (sat -o ... command)
[tools/sat.git] / test / prepare / test_prepare.py
index 64c2c86002fc8d8d3009596ec06c78fbc329273d..bebeecac721e7df266bcb3affa501adeb7d203be 100644 (file)
@@ -19,7 +19,7 @@
 import unittest
 import os
 import sys
-import io
+import shutil
 
 # get execution path
 testdir = os.path.dirname(os.path.realpath(__file__))
@@ -27,33 +27,104 @@ sys.path.append(os.path.join(testdir, '..', '..'))
 sys.path.append(os.path.join(testdir, '..', '_testTools'))
 sys.path.append(os.path.join(testdir, '..', '..','commands'))
 
+import src
+
 from salomeTools import Sat
 import HTMLTestRunner
 
-sleep_time = 3
-
-class TestLog(unittest.TestCase):
+class TestPrepare(unittest.TestCase):
     '''Test of the prepare command
     '''
-    
+
+    def test_prepare_dev(self):
+        '''Test the prepare command with a product in dev mode
+        '''
+        OK = 'KO'
+
+        appli = 'appli-test'
+        product_name = 'PRODUCT_DEV'
+
+        sat = Sat()
+               
+        sat.config(appli)
+        
+        expected_src_dir = src.product.get_product_config(sat.cfg, product_name).source_dir
+        expected_file_path = os.path.join(expected_src_dir, 'my_test_file.txt')
+        expected_text = 'HELLO WORLD\n'
+        
+        if os.path.exists(expected_src_dir):
+            shutil.rmtree(expected_src_dir)
+        
+        sat.prepare(appli + ' --product ' + product_name)
+        
+        f = open(expected_file_path, 'r')
+        text = f.readlines()[0]
+        if text == expected_text:
+            OK = 'OK'
+
+        # pyunit method to compare 2 str
+        self.assertEqual(OK, 'OK')
+
     def test_prepare_all(self):
-        '''Test the prepare command with many ways to prepare
+        '''Test the prepare command with all products
         '''
-       
-        OK = "KO"
+        OK = 'KO'
+
+        appli = 'appli-test'
+        product_name = 'PRODUCT_DEV'
 
         sat = Sat()
+        sat.config(appli)
+        
+        expected_src_dir = src.product.get_product_config(sat.cfg, product_name).source_dir
+        expected_file_path = os.path.join(expected_src_dir, 'my_test_file.txt')
+        expected_text = 'HELLO WORLD\n'
+        
+        if os.path.exists(expected_src_dir):
+            shutil.rmtree(expected_src_dir)
+        
+        sat.prepare(appli)
+        
+        f = open(expected_file_path, 'r')
+        text = f.readlines()[0]
+        if text == expected_text:
+            OK = 'OK'
 
+        # pyunit method to compare 2 str
+        self.assertEqual(OK, 'OK')
+
+    def test_prepare_option_sample_and_force(self):
+        '''Test the prepare command with all products
+        '''
+        OK = 'KO'
+
+        appli = 'appli-test'
+
+        sat = Sat()
+        sat.config(appli)
+       
         try:
-            sat.prepare('appli-test')
-            OK = "OK"
+            sat.prepare(appli + " --force --force_patch")
+            OK = 'OK'
         except:
             pass
+
+        # pyunit method to compare 2 str
+        self.assertEqual(OK, 'OK')
+
+    def test_description(self):
+        '''Test the sat -h prepare
+        '''        
+
+        OK = "KO"
+
+        import prepare
         
+        if "The prepare command gets the sources" in prepare.description():
+            OK = "OK"
 
         # pyunit method to compare 2 str
         self.assertEqual(OK, "OK")
-        
 
 # test launch
 if __name__ == '__main__':