]> SALOME platform Git repositories - tools/sat.git/blob - test/test_sat5_0/prepare/test_patch.py
Salome HOME
add AllTestLauncher and src/loggingSimple.py etc...
[tools/sat.git] / test / test_sat5_0 / prepare / test_patch.py
1 #!/usr/bin/env python
2 #-*- coding:utf-8 -*-
3
4 #  Copyright (C) 2010-2018  CEA/DEN
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19
20 import os
21 import sys
22 import shutil
23 import unittest
24
25 from src.salomeTools import Sat
26 import src.product
27 from unittestpy.tools import outRedirection
28
29 class TestCase(unittest.TestCase):
30     """Test of the patch command"""
31
32     def test_010(self):
33         # Test the patch command with a product in dev mode
34         OK = 'KO'
35
36         appli = 'appli-test'
37         product_name = 'PRODUCT_DEV'
38
39         sat = Sat("-oUSER.output_level=2")
40                
41         sat.config(appli)
42         
43         expected_src_dir = src.product.get_product_config(sat.cfg, product_name).source_dir
44         expected_file_path = os.path.join(expected_src_dir, 'my_test_file.txt')
45         expected_text = 'HELLO WORLD\n'
46         
47         if os.path.exists(expected_src_dir):
48             shutil.rmtree(expected_src_dir)
49         
50         sat.source(appli + ' --product ' + product_name)
51         
52         f = open(expected_file_path, 'r')
53         text = f.readlines()[0]
54         OK1 = 'KO'
55         if text == expected_text:
56             OK1 = 'OK'
57        
58         sat.patch(appli + ' --product ' + product_name)
59         
60         new_expected_text = 'HELLO WORLD MODIFIED\n'
61         f = open(expected_file_path, 'r')
62         text = f.readlines()[0]
63         
64         OK2 = 'KO'
65         if text == new_expected_text:
66             OK2 = 'OK'         
67
68         if (OK1, OK2)==('OK', 'OK'):
69             OK = 'OK'
70         self.assertEqual(OK, 'OK')
71
72     def test_020(self):
73         # Test the patch command with a product with no sources found
74         OK = 'KO'
75
76         appli = 'appli-test'
77         product_name = 'PRODUCT_DEV'
78
79         sat = Sat('')
80         sat.config(appli)
81         
82         expected_src_dir = src.product.get_product_config(sat.cfg, product_name).source_dir
83         
84         if os.path.exists(expected_src_dir):
85             shutil.rmtree(expected_src_dir)
86                
87         # output redirection
88         my_out = outRedirection()
89         
90         sat.patch(appli + ' --product ' + product_name)
91         
92         # stop output redirection
93         my_out.end_redirection()
94
95         # get results
96         res = my_out.read_results()
97         
98         if "No sources found for the " + product_name +" product" in res:
99             OK = 'OK'
100         self.assertEqual(OK, 'OK')
101
102     def test_030(self):
103         # Test the patch command with a product without patch
104         OK = 'KO'
105
106         appli = 'appli-test'
107         product_name = 'PRODUCT_ARCHIVE'
108
109         sat = Sat('-v4')
110                       
111         sat.source(appli + ' --product ' + product_name)
112                
113         # output redirection
114         my_out = outRedirection()
115         
116         sat.patch(appli + ' --product ' + product_name)
117         
118         # stop output redirection
119         my_out.end_redirection()
120
121         # get results
122         res = my_out.read_results()
123         
124         if "No patch for the " + product_name +" product" in res:
125             OK = 'OK'
126         self.assertEqual(OK, 'OK')
127
128     def test_040(self):
129         # Test the patch command with a product with a not valid patch
130         OK = 'KO'
131
132         appli = 'appli-test'
133         product_name = 'PRODUCT_DEV'
134
135         sat = Sat("-oPRODUCTS.PRODUCT_DEV.default.patches=['/']")
136                       
137         sat.source(appli + ' --product ' + product_name)
138                
139         # output redirection
140         my_out = outRedirection()
141         
142         sat.patch(appli + ' --product ' + product_name)
143         
144         # stop output redirection
145         my_out.end_redirection()
146
147         # get results
148         res = my_out.read_results()
149         
150         if "Not a valid patch" in res:
151             OK = 'OK'
152         self.assertEqual(OK, 'OK')
153
154     def test_050(self):
155         # Test the sat -h patch
156         OK = "KO"
157
158         import patch
159         
160         if "The patch command apply the patches on the sources of" in patch.description():
161             OK = "OK"
162         self.assertEqual(OK, "OK")
163
164 # test launch
165 if __name__ == '__main__':
166     unittest.main()
167     pass