2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml">
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10 <title>src.test_module — salomeTools 5.0.0dev documentation</title>
12 <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
13 <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
14 <link rel="stylesheet" href="/volatile/wambeke/SAT5/SAT5_S840_MATIX24/SAT/doc/src/custom.css" type="text/css" />
16 <script type="text/javascript">
17 var DOCUMENTATION_OPTIONS = {
20 COLLAPSE_INDEX: false,
25 <script type="text/javascript" src="../../_static/jquery.js"></script>
26 <script type="text/javascript" src="../../_static/underscore.js"></script>
27 <script type="text/javascript" src="../../_static/doctools.js"></script>
28 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
29 <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
30 <link rel="up" title="Module code" href="../index.html" />
32 <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
35 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
41 <div class="document">
42 <div class="documentwrapper">
43 <div class="bodywrapper">
44 <div class="body" role="main">
46 <h1>Source code for src.test_module</h1><div class="highlight"><pre>
47 <span class="c">#!/usr/bin/env python</span>
48 <span class="c">#-*- coding:utf-8 -*-</span>
49 <span class="c"># Copyright (C) 2010-2013 CEA/DEN</span>
50 <span class="c">#</span>
51 <span class="c"># This library is free software; you can redistribute it and/or</span>
52 <span class="c"># modify it under the terms of the GNU Lesser General Public</span>
53 <span class="c"># License as published by the Free Software Foundation; either</span>
54 <span class="c"># version 2.1 of the License.</span>
55 <span class="c">#</span>
56 <span class="c"># This library is distributed in the hope that it will be useful,</span>
57 <span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
58 <span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
59 <span class="c"># Lesser General Public License for more details.</span>
60 <span class="c">#</span>
61 <span class="c"># You should have received a copy of the GNU Lesser General Public</span>
62 <span class="c"># License along with this library; if not, write to the Free Software</span>
63 <span class="c"># Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
65 <span class="c"># Python 2/3 compatibility for execfile function</span>
66 <span class="k">try</span><span class="p">:</span>
67 <span class="nb">execfile</span>
68 <span class="k">except</span><span class="p">:</span>
69 <span class="k">def</span> <span class="nf">execfile</span><span class="p">(</span><span class="n">somefile</span><span class="p">,</span> <span class="n">global_vars</span><span class="p">,</span> <span class="n">local_vars</span><span class="p">):</span>
70 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">somefile</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
71 <span class="n">code</span> <span class="o">=</span> <span class="nb">compile</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="n">somefile</span><span class="p">,</span> <span class="s">'exec'</span><span class="p">)</span>
72 <span class="k">exec</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">global_vars</span><span class="p">,</span> <span class="n">local_vars</span><span class="p">)</span>
75 <span class="kn">import</span> <span class="nn">os</span>
76 <span class="kn">import</span> <span class="nn">sys</span>
77 <span class="kn">import</span> <span class="nn">datetime</span>
78 <span class="kn">import</span> <span class="nn">shutil</span>
79 <span class="kn">import</span> <span class="nn">string</span>
80 <span class="kn">import</span> <span class="nn">imp</span>
81 <span class="kn">import</span> <span class="nn">subprocess</span>
83 <span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">fork</span>
84 <span class="kn">import</span> <span class="nn">src</span>
86 <span class="c"># directories not considered as test grids</span>
87 <span class="n">C_IGNORE_GRIDS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'.git'</span><span class="p">,</span> <span class="s">'.svn'</span><span class="p">,</span> <span class="s">'RESSOURCES'</span><span class="p">]</span>
89 <span class="n">DEFAULT_TIMEOUT</span> <span class="o">=</span> <span class="mi">150</span>
91 <span class="c"># Get directory to be used for the temporary files.</span>
92 <span class="c">#</span>
93 <div class="viewcode-block" id="getTmpDirDEFAULT"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.getTmpDirDEFAULT">[docs]</a><span class="k">def</span> <span class="nf">getTmpDirDEFAULT</span><span class="p">():</span>
94 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
95 <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">"TEMP"</span><span class="p">)</span>
96 <span class="k">else</span><span class="p">:</span>
97 <span class="c"># for Linux: use /tmp/logs/{user} folder</span>
98 <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="s">'/tmp'</span><span class="p">,</span> <span class="s">'logs'</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">"USER"</span><span class="p">,</span> <span class="s">"unknown"</span><span class="p">))</span>
99 <span class="k">return</span> <span class="n">directory</span>
101 <div class="viewcode-block" id="Test"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test">[docs]</a><span class="k">class</span> <span class="nc">Test</span><span class="p">:</span>
102 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
103 <span class="n">config</span><span class="p">,</span>
104 <span class="n">logger</span><span class="p">,</span>
105 <span class="n">tmp_working_dir</span><span class="p">,</span>
106 <span class="n">testbase</span><span class="o">=</span><span class="s">""</span><span class="p">,</span>
107 <span class="n">grids</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
108 <span class="n">sessions</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
109 <span class="n">launcher</span><span class="o">=</span><span class="s">""</span><span class="p">,</span>
110 <span class="n">show_desktop</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
111 <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="o">=</span> <span class="n">grids</span>
112 <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
113 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
114 <span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span> <span class="o">=</span> <span class="n">tmp_working_dir</span>
115 <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="o">=</span> <span class="n">sessions</span>
116 <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">=</span> <span class="n">launcher</span>
117 <span class="bp">self</span><span class="o">.</span><span class="n">show_desktop</span> <span class="o">=</span> <span class="n">show_desktop</span>
119 <span class="n">res</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase</span><span class="p">(</span><span class="n">testbase</span><span class="p">)</span>
120 <span class="bp">self</span><span class="o">.</span><span class="n">test_base_found</span> <span class="o">=</span> <span class="bp">True</span>
121 <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
122 <span class="c"># Fail</span>
123 <span class="bp">self</span><span class="o">.</span><span class="n">test_base_found</span> <span class="o">=</span> <span class="bp">False</span>
125 <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="p">{}</span>
126 <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="o">=</span> <span class="bp">None</span>
128 <span class="c"># create section for results</span>
129 <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">TESTS</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
131 <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">=</span> <span class="mi">0</span>
132 <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">=</span> <span class="mi">0</span>
133 <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">=</span> <span class="mi">0</span>
134 <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">=</span> <span class="mi">0</span>
135 <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">=</span> <span class="mi">0</span>
137 <span class="k">def</span> <span class="nf">_copy_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">):</span>
138 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">python</span> <span class="o">>=</span> <span class="s">"2.6"</span><span class="p">:</span>
139 <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span>
140 <span class="n">symlinks</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
141 <span class="n">ignore</span><span class="o">=</span><span class="n">shutil</span><span class="o">.</span><span class="n">ignore_patterns</span><span class="p">(</span><span class="s">'.git*'</span><span class="p">,</span><span class="s">'.svn*'</span><span class="p">))</span>
142 <span class="k">else</span><span class="p">:</span>
143 <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span>
144 <span class="n">symlinks</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
146 <div class="viewcode-block" id="Test.prepare_testbase_from_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_dir">[docs]</a> <span class="k">def</span> <span class="nf">prepare_testbase_from_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_dir</span><span class="p">):</span>
147 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"get test base from dir: </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> \
148 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
149 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">X_OK</span><span class="p">):</span>
150 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"testbase </span><span class="si">%(name)s</span><span class="s"> (</span><span class="si">%(dir)s</span><span class="s">) does not "</span>
151 <span class="s">"exist ...</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span> <span class="s">'name'</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
152 <span class="s">'dir'</span><span class="p">:</span> <span class="n">testbase_dir</span> <span class="p">})</span>
154 <span class="bp">self</span><span class="o">.</span><span class="n">_copy_dir</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span>
155 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'BASES'</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">))</span>
157 <div class="viewcode-block" id="Test.prepare_testbase_from_git"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_git">[docs]</a> <span class="k">def</span> <span class="nf">prepare_testbase_from_git</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
158 <span class="n">testbase_name</span><span class="p">,</span>
159 <span class="n">testbase_base</span><span class="p">,</span>
160 <span class="n">testbase_tag</span><span class="p">):</span>
161 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
162 <span class="n">_</span><span class="p">(</span><span class="s">"get test base '</span><span class="si">%(testbase)s</span><span class="s">' with '</span><span class="si">%(tag)s</span><span class="s">' tag from git</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span>
163 <span class="s">"testbase"</span> <span class="p">:</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_name</span><span class="p">),</span>
164 <span class="s">"tag"</span> <span class="p">:</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_tag</span><span class="p">)},</span>
165 <span class="mi">3</span><span class="p">)</span>
166 <span class="k">try</span><span class="p">:</span>
167 <span class="k">def</span> <span class="nf">set_signal</span><span class="p">():</span> <span class="c"># pragma: no cover</span>
168 <span class="sd">"""see http://bugs.python.org/issue1652"""</span>
169 <span class="kn">import</span> <span class="nn">signal</span>
170 <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGPIPE</span><span class="p">,</span> <span class="n">signal</span><span class="o">.</span><span class="n">SIG_DFL</span><span class="p">)</span>
172 <span class="n">cmd</span> <span class="o">=</span> <span class="s">"git clone --depth 1 </span><span class="si">%(base)s</span><span class="s"> </span><span class="si">%(dir)s</span><span class="s">"</span>
173 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">" && cd </span><span class="si">%(dir)s</span><span class="s">"</span>
174 <span class="k">if</span> <span class="n">testbase_tag</span><span class="o">==</span><span class="s">'master'</span><span class="p">:</span>
175 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">" && git fetch origin </span><span class="si">%(branch)s</span><span class="s">"</span>
176 <span class="k">else</span><span class="p">:</span>
177 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">" && git fetch origin </span><span class="si">%(branch)s</span><span class="s">:</span><span class="si">%(branch)s</span><span class="s">"</span>
178 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">" && git checkout </span><span class="si">%(branch)s</span><span class="s">"</span>
179 <span class="n">cmd</span> <span class="o">=</span> <span class="n">cmd</span> <span class="o">%</span> <span class="p">{</span> <span class="s">'branch'</span><span class="p">:</span> <span class="n">testbase_tag</span><span class="p">,</span>
180 <span class="s">'base'</span><span class="p">:</span> <span class="n">testbase_base</span><span class="p">,</span>
181 <span class="s">'dir'</span><span class="p">:</span> <span class="n">testbase_name</span> <span class="p">}</span>
183 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
184 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
185 <span class="c"># preexec_fn not supported on windows platform</span>
186 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
187 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'BASES'</span><span class="p">),</span>
188 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
189 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
190 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
191 <span class="k">else</span><span class="p">:</span>
192 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
193 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'BASES'</span><span class="p">),</span>
194 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
195 <span class="n">preexec_fn</span><span class="o">=</span><span class="n">set_signal</span><span class="p">,</span>
196 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
197 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
198 <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
199 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Error: unable to get test base "</span>
200 <span class="s">"'</span><span class="si">%(name)s</span><span class="s">' from git '</span><span class="si">%(repo)s</span><span class="s">'."</span><span class="p">)</span> <span class="o">%</span> \
201 <span class="p">{</span> <span class="s">'name'</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
202 <span class="s">'repo'</span><span class="p">:</span> <span class="n">testbase_base</span> <span class="p">})</span>
204 <span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span>
205 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"git is not installed. exiting...</span><span class="se">\n</span><span class="s">"</span><span class="p">))</span>
206 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
208 <div class="viewcode-block" id="Test.prepare_testbase_from_svn"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_svn">[docs]</a> <span class="k">def</span> <span class="nf">prepare_testbase_from_svn</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_base</span><span class="p">):</span>
209 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"get test base '</span><span class="si">%s</span><span class="s">' from svn</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> \
210 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_name</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
211 <span class="k">try</span><span class="p">:</span>
212 <span class="k">def</span> <span class="nf">set_signal</span><span class="p">():</span> <span class="c"># pragma: no cover</span>
213 <span class="sd">"""see http://bugs.python.org/issue1652"""</span>
214 <span class="kn">import</span> <span class="nn">signal</span>
215 <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGPIPE</span><span class="p">,</span> <span class="n">signal</span><span class="o">.</span><span class="n">SIG_DFL</span><span class="p">)</span>
217 <span class="n">cmd</span> <span class="o">=</span> <span class="s">"svn checkout --username </span><span class="si">%(user)s</span><span class="s"> </span><span class="si">%(base)s</span><span class="s"> </span><span class="si">%(dir)s</span><span class="s">"</span>
218 <span class="n">cmd</span> <span class="o">=</span> <span class="n">cmd</span> <span class="o">%</span> <span class="p">{</span> <span class="s">'user'</span><span class="p">:</span> <span class="n">user</span><span class="p">,</span>
219 <span class="s">'base'</span><span class="p">:</span> <span class="n">testbase_base</span><span class="p">,</span>
220 <span class="s">'dir'</span><span class="p">:</span> <span class="n">testbase_name</span> <span class="p">}</span>
222 <span class="c"># Get the application environment</span>
223 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Set the application environment</span><span class="se">\n</span><span class="s">"</span><span class="p">),</span> <span class="mi">5</span><span class="p">)</span>
224 <span class="n">env_appli</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">SalomeEnviron</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
225 <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Environ</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)))</span>
226 <span class="n">env_appli</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
228 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
229 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
230 <span class="c"># preexec_fn not supported on windows platform</span>
231 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
232 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'BASES'</span><span class="p">),</span>
233 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
234 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
235 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
236 <span class="k">else</span><span class="p">:</span>
237 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
238 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'BASES'</span><span class="p">),</span>
239 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
240 <span class="n">preexec_fn</span><span class="o">=</span><span class="n">set_signal</span><span class="p">,</span>
241 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
242 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
243 <span class="n">env</span><span class="o">=</span><span class="n">env_appli</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="p">,)</span>
245 <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
246 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Error: unable to get test base '%(nam"</span>
247 <span class="s">"e)s' from svn '</span><span class="si">%(repo)s</span><span class="s">'."</span><span class="p">)</span> <span class="o">%</span> \
248 <span class="p">{</span> <span class="s">'name'</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
249 <span class="s">'repo'</span><span class="p">:</span> <span class="n">testbase_base</span> <span class="p">})</span>
251 <span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span>
252 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"svn is not installed. exiting...</span><span class="se">\n</span><span class="s">"</span><span class="p">))</span>
253 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
255 <span class="c">##</span>
256 <span class="c"># Configure tests base.</span></div>
257 <div class="viewcode-block" id="Test.prepare_testbase"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase">[docs]</a> <span class="k">def</span> <span class="nf">prepare_testbase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">):</span>
258 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
259 <span class="n">_</span><span class="p">(</span><span class="s">"Test base"</span><span class="p">),</span>
260 <span class="n">test_base_name</span><span class="p">,</span>
261 <span class="mi">3</span><span class="p">)</span>
262 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
264 <span class="c"># search for the test base</span>
265 <span class="n">test_base_info</span> <span class="o">=</span> <span class="bp">None</span>
266 <span class="k">for</span> <span class="n">project_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">:</span>
267 <span class="n">project_info</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">]</span>
268 <span class="k">if</span> <span class="s">"test_bases"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">project_info</span><span class="p">:</span>
269 <span class="k">continue</span>
270 <span class="k">for</span> <span class="n">t_b_info</span> <span class="ow">in</span> <span class="n">project_info</span><span class="o">.</span><span class="n">test_bases</span><span class="p">:</span>
271 <span class="k">if</span> <span class="n">t_b_info</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">test_base_name</span><span class="p">:</span>
272 <span class="n">test_base_info</span> <span class="o">=</span> <span class="n">t_b_info</span>
274 <span class="k">if</span> <span class="ow">not</span> <span class="n">test_base_info</span><span class="p">:</span>
275 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">):</span>
276 <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_dir</span><span class="p">(</span><span class="s">"DIR"</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">)</span>
277 <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span> <span class="o">=</span> <span class="s">"DIR"</span>
278 <span class="k">return</span> <span class="mi">0</span>
280 <span class="k">if</span> <span class="ow">not</span> <span class="n">test_base_info</span><span class="p">:</span>
281 <span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"########## ERROR: test base '</span><span class="si">%s</span><span class="s">' not found</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
282 <span class="n">test_base_name</span><span class="p">)</span>
283 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcError</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
284 <span class="k">return</span> <span class="mi">1</span>
286 <span class="k">if</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">"dir"</span><span class="p">:</span>
287 <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_dir</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">,</span>
288 <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">dir</span><span class="p">)</span>
289 <span class="k">elif</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">"git"</span><span class="p">:</span>
290 <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_git</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">,</span>
291 <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">base</span><span class="p">,</span>
292 <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">test_base</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
293 <span class="k">elif</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">"svn"</span><span class="p">:</span>
294 <span class="n">svn_user</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="p">,</span>
295 <span class="s">"svn_user"</span><span class="p">,</span>
296 <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">svn_user</span><span class="p">)</span>
297 <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_svn</span><span class="p">(</span><span class="n">svn_user</span><span class="p">,</span>
298 <span class="n">test_base_name</span><span class="p">,</span>
299 <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">base</span><span class="p">)</span>
300 <span class="k">else</span><span class="p">:</span>
301 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"unknown source type '</span><span class="si">%(type)s</span><span class="s">' for test b"</span>
302 <span class="s">"ase '</span><span class="si">%(base)s</span><span class="s">' ...</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span>
303 <span class="s">'type'</span><span class="p">:</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span><span class="p">,</span>
304 <span class="s">'base'</span><span class="p">:</span> <span class="n">test_base_name</span> <span class="p">})</span>
306 <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span> <span class="o">=</span> <span class="n">test_base_name</span>
308 <span class="c">##</span>
309 <span class="c"># Searches if the script is declared in known errors pyconf.</span>
310 <span class="c"># Update the status if needed.</span></div>
311 <div class="viewcode-block" id="Test.search_known_errors"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.search_known_errors">[docs]</a> <span class="k">def</span> <span class="nf">search_known_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
312 <span class="n">test_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">)</span>
313 <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">config_has_application</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">):</span>
314 <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
316 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
317 <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
319 <span class="n">platform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">arch</span>
320 <span class="n">application</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span>
321 <span class="n">error</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">get_error</span><span class="p">(</span><span class="n">test_path</span><span class="p">,</span> <span class="n">application</span><span class="p">,</span> <span class="n">platform</span><span class="p">)</span>
322 <span class="k">if</span> <span class="n">error</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
323 <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
325 <span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
326 <span class="k">if</span> <span class="ow">not</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span><span class="p">:</span>
327 <span class="c"># the error is fixed</span>
328 <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">fix_error</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
329 <span class="c">#import testerror</span>
330 <span class="c">#testerror.write_test_failures(</span>
331 <span class="c"># self.config.TOOLS.testerror.file_path,</span>
332 <span class="c"># self.known_errors.errors)</span>
333 <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[</span> <span class="n">error</span><span class="o">.</span><span class="n">date</span><span class="p">,</span>
334 <span class="n">error</span><span class="o">.</span><span class="n">expected</span><span class="p">,</span>
335 <span class="n">error</span><span class="o">.</span><span class="n">comment</span><span class="p">,</span>
336 <span class="n">error</span><span class="o">.</span><span class="n">fixed</span> <span class="p">]</span>
338 <span class="k">if</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span><span class="p">:</span>
339 <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">unfix_error</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
340 <span class="c">#import testerror</span>
341 <span class="c">#testerror.write_test_failures(self.config.TOOLS.testerror.file_path,</span>
342 <span class="c"># self.known_errors.errors)</span>
344 <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">get_expecting_days</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
345 <span class="n">kfres</span> <span class="o">=</span> <span class="p">[</span> <span class="n">error</span><span class="o">.</span><span class="n">date</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">expected</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">comment</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span> <span class="p">]</span>
346 <span class="k">if</span> <span class="n">delta</span> <span class="o"><</span> <span class="mi">0</span><span class="p">:</span>
347 <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">,</span> <span class="n">kfres</span>
348 <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span><span class="p">,</span> <span class="n">kfres</span>
350 <span class="c">##</span>
351 <span class="c"># Read the *.result.py files.</span></div>
352 <div class="viewcode-block" id="Test.read_results"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.read_results">[docs]</a> <span class="k">def</span> <span class="nf">read_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">has_timed_out</span><span class="p">):</span>
353 <span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
354 <span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">listTest</span><span class="p">:</span>
355 <span class="n">resfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
356 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
357 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
358 <span class="n">test</span><span class="p">[:</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="s">".result.py"</span><span class="p">)</span>
360 <span class="c"># check if <test>.result.py file exists</span>
361 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">resfile</span><span class="p">):</span>
362 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s">"?"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="p">[]]</span>
363 <span class="k">else</span><span class="p">:</span>
364 <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span>
365 <span class="nb">execfile</span><span class="p">(</span><span class="n">resfile</span><span class="p">,</span> <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span><span class="p">)</span>
367 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span>
368 <span class="k">if</span> <span class="ow">not</span> <span class="n">has_timed_out</span><span class="p">:</span>
369 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span>
371 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">'status'</span><span class="p">):</span>
372 <span class="n">status</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">'status'</span><span class="p">]</span>
374 <span class="n">expected</span> <span class="o">=</span> <span class="p">[]</span>
375 <span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span> <span class="ow">or</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
376 <span class="n">status</span><span class="p">,</span> <span class="n">expected</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">search_known_errors</span><span class="p">(</span><span class="n">status</span><span class="p">,</span>
377 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
378 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
379 <span class="n">test</span><span class="p">)</span>
381 <span class="n">callback</span> <span class="o">=</span> <span class="s">""</span>
382 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">'callback'</span><span class="p">):</span>
383 <span class="n">callback</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">'callback'</span><span class="p">]</span>
384 <span class="k">elif</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">:</span>
385 <span class="n">callback</span> <span class="o">=</span> <span class="s">"CRASH"</span>
387 <span class="n">exec_time</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
388 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">'time'</span><span class="p">):</span>
389 <span class="k">try</span><span class="p">:</span>
390 <span class="n">exec_time</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">ldic</span><span class="p">[</span><span class="s">'time'</span><span class="p">])</span>
391 <span class="k">except</span><span class="p">:</span>
392 <span class="k">pass</span>
394 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">status</span><span class="p">,</span> <span class="n">exec_time</span><span class="p">,</span> <span class="n">callback</span><span class="p">,</span> <span class="n">expected</span><span class="p">]</span>
396 <span class="c"># check if <test>.py file exists</span>
397 <span class="n">testfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
398 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
399 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
400 <span class="n">test</span><span class="p">)</span>
402 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">testfile</span><span class="p">):</span>
403 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">''</span><span class="p">)</span>
404 <span class="k">else</span><span class="p">:</span>
405 <span class="n">text</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">testfile</span><span class="p">,</span> <span class="s">"r"</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
406 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
408 <span class="c"># check if <test>.out.py file exists</span>
409 <span class="n">outfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
410 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
411 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
412 <span class="n">test</span><span class="p">[:</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="s">".out.py"</span><span class="p">)</span>
414 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">outfile</span><span class="p">):</span>
415 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">''</span><span class="p">)</span>
416 <span class="k">else</span><span class="p">:</span>
417 <span class="n">text</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s">"r"</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
418 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
420 <span class="k">return</span> <span class="n">results</span>
422 <span class="c">##</span>
423 <span class="c"># Generates the script to be run by Salome.</span>
424 <span class="c"># This python script includes init and close statements and a loop</span>
425 <span class="c"># calling all the scripts of a single directory.</span></div>
426 <div class="viewcode-block" id="Test.generate_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_script">[docs]</a> <span class="k">def</span> <span class="nf">generate_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
427 <span class="c"># open template file</span>
428 <span class="n">template_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span>
429 <span class="s">"test"</span><span class="p">,</span>
430 <span class="s">"scriptTemplate.py"</span><span class="p">),</span> <span class="s">'r'</span><span class="p">)</span>
431 <span class="n">template</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">(</span><span class="n">template_file</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
433 <span class="c"># create substitution dictionary</span>
434 <span class="n">d</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
435 <span class="n">d</span><span class="p">[</span><span class="s">'resourcesWay'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="s">'RESSOURCES'</span><span class="p">)</span>
436 <span class="n">d</span><span class="p">[</span><span class="s">'tmpDir'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">'WORK'</span><span class="p">)</span>
437 <span class="n">d</span><span class="p">[</span><span class="s">'toolsWay'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s">"test"</span><span class="p">)</span>
438 <span class="n">d</span><span class="p">[</span><span class="s">'sessionDir'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
439 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
440 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
441 <span class="n">d</span><span class="p">[</span><span class="s">'resultFile'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
442 <span class="s">'WORK'</span><span class="p">,</span>
443 <span class="s">'exec_result'</span><span class="p">)</span>
444 <span class="n">d</span><span class="p">[</span><span class="s">'listTest'</span><span class="p">]</span> <span class="o">=</span> <span class="n">listTest</span>
445 <span class="n">d</span><span class="p">[</span><span class="s">'sessionName'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span>
446 <span class="n">d</span><span class="p">[</span><span class="s">'ignore'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ignoreList</span>
448 <span class="c"># create script with template</span>
449 <span class="n">script</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">script_path</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span>
450 <span class="n">script</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">template</span><span class="o">.</span><span class="n">safe_substitute</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
451 <span class="n">script</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
453 <span class="c"># Find the getTmpDir function that gives access to *pidict file directory.</span>
454 <span class="c"># (the *pidict file exists when SALOME is launched) </span></div>
455 <div class="viewcode-block" id="Test.get_tmp_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_tmp_dir">[docs]</a> <span class="k">def</span> <span class="nf">get_tmp_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
456 <span class="c"># Rare case where there is no KERNEL in grid list </span>
457 <span class="c"># (for example MED_STANDALONE)</span>
458 <span class="k">if</span> <span class="p">(</span><span class="s">'APPLICATION'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span>
459 <span class="ow">and</span> <span class="s">'KERNEL'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span>
460 <span class="ow">and</span> <span class="s">'KERNEL_ROOT_DIR'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
461 <span class="k">return</span> <span class="n">getTmpDirDEFAULT</span>
463 <span class="c"># Case where "sat test" is launched in an existing SALOME environment</span>
464 <span class="k">if</span> <span class="s">'KERNEL_ROOT_DIR'</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
465 <span class="n">root_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">'KERNEL_ROOT_DIR'</span><span class="p">]</span>
467 <span class="k">if</span> <span class="p">(</span><span class="s">'APPLICATION'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span>
468 <span class="ow">and</span> <span class="s">'KERNEL'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">):</span>
469 <span class="n">root_dir</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
470 <span class="s">"KERNEL"</span><span class="p">)</span><span class="o">.</span><span class="n">install_dir</span>
472 <span class="c"># Case where there the appli option is called (with path to launcher)</span>
473 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
474 <span class="c"># There are two cases : The old application (runAppli) </span>
475 <span class="c"># and the new one</span>
476 <span class="n">launcherName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
477 <span class="n">launcherDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
478 <span class="k">if</span> <span class="n">launcherName</span> <span class="o">==</span> <span class="s">'runAppli'</span><span class="p">:</span>
479 <span class="c"># Old application</span>
480 <span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s">"for i in "</span> <span class="o">+</span> <span class="n">launcherDir</span> <span class="o">+</span> <span class="s">"/env.d/*.sh; do source ${i};"</span>
481 <span class="s">" done ; echo $KERNEL_ROOT_DIR"</span><span class="p">)</span>
482 <span class="k">else</span><span class="p">:</span>
483 <span class="c"># New application</span>
484 <span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s">"echo -e 'import os</span><span class="se">\n</span><span class="s">print os.environ[</span><span class="se">\"</span><span class="s">KERNEL_"</span> <span class="o">+</span>
485 <span class="s">"ROOT_DIR</span><span class="se">\"</span><span class="s">]' > tmpscript.py; </span><span class="si">%s</span><span class="s"> shell"</span> <span class="o">+</span>
486 <span class="s">" tmpscript.py"</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
488 <span class="c"># OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb</span>
489 <span class="c"># de remontee de log des tests</span>
490 <span class="c">#root_dir = subprocess.Popen(cmd,</span>
491 <span class="c"># stdout=subprocess.PIPE,</span>
492 <span class="c"># shell=True,</span>
493 <span class="c"># executable='/bin/bash').communicate()[0].split()[-1]</span>
494 <span class="n">subproc_res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
495 <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
496 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
497 <span class="n">executable</span><span class="o">=</span><span class="s">'/bin/bash'</span><span class="p">)</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
498 <span class="c">#print "TRACES OP - test_module.py/Test.get_tmp_dir() subproc_res = "</span>
499 <span class="k">for</span> <span class="n">resLine</span> <span class="ow">in</span> <span class="n">subproc_res</span><span class="p">:</span>
500 <span class="k">print</span> <span class="s">"- '#</span><span class="si">%s</span><span class="s">#'"</span> <span class="o">%</span><span class="n">resLine</span>
502 <span class="n">root_dir</span> <span class="o">=</span> <span class="n">subproc_res</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
504 <span class="c"># OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb</span>
505 <span class="c"># de remontee de log des tests</span>
506 <span class="c">#print "TRACES OP - test_module.py/Test.get_tmp_dir() root_dir = '#%s#'" %root_dir</span>
508 <span class="c"># import grid salome_utils from KERNEL that gives </span>
509 <span class="c"># the right getTmpDir function</span>
510 <span class="p">(</span><span class="n">file_</span><span class="p">,</span> <span class="n">pathname</span><span class="p">,</span> <span class="n">description</span><span class="p">)</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="s">"salome_utils"</span><span class="p">,</span>
511 <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root_dir</span><span class="p">,</span>
512 <span class="s">'bin'</span><span class="p">,</span>
513 <span class="s">'salome'</span><span class="p">)])</span>
514 <span class="k">try</span><span class="p">:</span>
515 <span class="n">grid</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="s">"salome_utils"</span><span class="p">,</span>
516 <span class="n">file_</span><span class="p">,</span>
517 <span class="n">pathname</span><span class="p">,</span>
518 <span class="n">description</span><span class="p">)</span>
519 <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">getLogDir</span>
520 <span class="k">except</span><span class="p">:</span>
521 <span class="n">grid</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="s">"salome_utils"</span><span class="p">,</span>
522 <span class="n">file_</span><span class="p">,</span>
523 <span class="n">pathname</span><span class="p">,</span>
524 <span class="n">description</span><span class="p">)</span>
525 <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">getTmpDir</span>
526 <span class="k">finally</span><span class="p">:</span>
527 <span class="k">if</span> <span class="n">file_</span><span class="p">:</span>
528 <span class="n">file_</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
531 <div class="viewcode-block" id="Test.get_test_timeout"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_test_timeout">[docs]</a> <span class="k">def</span> <span class="nf">get_test_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_name</span><span class="p">,</span> <span class="n">default_value</span><span class="p">):</span>
532 <span class="k">if</span> <span class="p">(</span><span class="s">"timeout"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="ow">and</span>
533 <span class="n">test_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">"timeout"</span><span class="p">]):</span>
534 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">"timeout"</span><span class="p">][</span><span class="n">test_name</span><span class="p">]</span>
536 <span class="k">return</span> <span class="n">default_value</span>
538 <div class="viewcode-block" id="Test.generate_launching_commands"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_launching_commands">[docs]</a> <span class="k">def</span> <span class="nf">generate_launching_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
539 <span class="c"># Case where "sat test" is launched in an existing SALOME environment</span>
540 <span class="k">if</span> <span class="s">'KERNEL_ROOT_DIR'</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
541 <span class="n">binSalome</span> <span class="o">=</span> <span class="s">"runSalome"</span>
542 <span class="n">binPython</span> <span class="o">=</span> <span class="s">"python"</span>
543 <span class="n">killSalome</span> <span class="o">=</span> <span class="s">"killSalome.py"</span>
545 <span class="c"># Rare case where there is no KERNEL in grid list </span>
546 <span class="c"># (for example MED_STANDALONE)</span>
547 <span class="k">if</span> <span class="p">(</span><span class="s">'APPLICATION'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span>
548 <span class="s">'KERNEL'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">):</span>
549 <span class="n">binSalome</span> <span class="o">=</span> <span class="s">"runSalome"</span>
550 <span class="n">binPython</span> <span class="o">=</span> <span class="s">"python"</span>
551 <span class="n">killSalome</span> <span class="o">=</span> <span class="s">"killSalome.py"</span>
552 <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">load_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
553 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
555 <span class="c"># Case where there the appli option is called (with path to launcher)</span>
556 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
557 <span class="c"># There are two cases : The old application (runAppli) </span>
558 <span class="c"># and the new one</span>
559 <span class="n">launcherName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
560 <span class="n">launcherDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
561 <span class="k">if</span> <span class="n">launcherName</span> <span class="o">==</span> <span class="s">'runAppli'</span><span class="p">:</span>
562 <span class="c"># Old application</span>
563 <span class="n">binSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
564 <span class="n">binPython</span> <span class="o">=</span> <span class="p">(</span><span class="s">"for i in "</span> <span class="o">+</span>
565 <span class="n">launcherDir</span> <span class="o">+</span>
566 <span class="s">"/env.d/*.sh; do source ${i}; done ; python"</span><span class="p">)</span>
567 <span class="n">killSalome</span> <span class="o">=</span> <span class="p">(</span><span class="s">"for i in "</span> <span class="o">+</span>
568 <span class="n">launcherDir</span> <span class="o">+</span>
569 <span class="s">"/env.d/*.sh; do source ${i}; done ; killSalome.py'"</span><span class="p">)</span>
570 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
571 <span class="k">else</span><span class="p">:</span>
572 <span class="c"># New application</span>
573 <span class="n">binSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
574 <span class="n">binPython</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">+</span> <span class="s">' shell'</span>
575 <span class="n">killSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">+</span> <span class="s">' killall'</span>
576 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
578 <span class="c"># SALOME version detection and APPLI repository detection</span>
579 <span class="n">VersionSalome</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_salome_version</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
580 <span class="n">appdir</span> <span class="o">=</span> <span class="s">'APPLI'</span>
581 <span class="k">if</span> <span class="s">"APPLI"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span> <span class="s">"application_name"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLI</span><span class="p">:</span>
582 <span class="n">appdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLI</span><span class="o">.</span><span class="n">application_name</span>
584 <span class="c"># Case where SALOME has NOT the launcher that uses the SalomeContext API</span>
585 <span class="k">if</span> <span class="n">VersionSalome</span> <span class="o"><</span> <span class="mi">730</span><span class="p">:</span>
586 <span class="n">binSalome</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
587 <span class="n">appdir</span><span class="p">,</span>
588 <span class="s">"runAppli"</span><span class="p">)</span>
589 <span class="n">binPython</span> <span class="o">=</span> <span class="s">"python"</span>
590 <span class="n">killSalome</span> <span class="o">=</span> <span class="s">"killSalome.py"</span>
591 <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">load_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
592 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
594 <span class="c"># Case where SALOME has the launcher that uses the SalomeContext API</span>
595 <span class="k">else</span><span class="p">:</span>
596 <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_launcher_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
597 <span class="n">binSalome</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
598 <span class="n">launcher_name</span><span class="p">)</span>
600 <span class="n">binPython</span> <span class="o">=</span> <span class="n">binSalome</span> <span class="o">+</span> <span class="s">' shell'</span>
601 <span class="n">killSalome</span> <span class="o">=</span> <span class="n">binSalome</span> <span class="o">+</span> <span class="s">' killall'</span>
602 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
604 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
607 <span class="c">##</span>
608 <span class="c"># Runs tests of a session (using a single instance of Salome).</span></div>
609 <div class="viewcode-block" id="Test.run_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_tests">[docs]</a> <span class="k">def</span> <span class="nf">run_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
610 <span class="n">out_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
611 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
612 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
613 <span class="n">sessionname</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
614 <span class="n">time_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_test_timeout</span><span class="p">(</span><span class="n">sessionname</span><span class="p">,</span>
615 <span class="n">DEFAULT_TIMEOUT</span><span class="p">)</span>
617 <span class="n">time_out_salome</span> <span class="o">=</span> <span class="n">DEFAULT_TIMEOUT</span>
619 <span class="c"># generate wrapper script</span>
620 <span class="n">script_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_path</span><span class="p">,</span> <span class="s">'wrapperScript.py'</span><span class="p">)</span>
621 <span class="bp">self</span><span class="o">.</span><span class="n">generate_script</span><span class="p">(</span><span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">)</span>
623 <span class="n">tmpDir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_tmp_dir</span><span class="p">()</span>
625 <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_launching_commands</span><span class="p">()</span>
626 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">"run_with_grids"</span><span class="p">)</span> \
627 <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">"run_with_grids"</span><span class="p">]</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">sessionname</span><span class="p">):</span>
628 <span class="n">binSalome</span> <span class="o">=</span> <span class="p">(</span><span class="n">binSalome</span> <span class="o">+</span>
629 <span class="s">" -m </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">"run_with_grids"</span><span class="p">][</span><span class="n">sessionname</span><span class="p">])</span>
631 <span class="n">logWay</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">"WORK"</span><span class="p">,</span> <span class="s">"log_cxx"</span><span class="p">)</span>
633 <span class="n">status</span> <span class="o">=</span> <span class="bp">False</span>
634 <span class="n">elapsed</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
635 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"NOGUI_"</span><span class="p">):</span>
636 <span class="c"># runSalome -t (bash)</span>
637 <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch</span><span class="p">(</span><span class="n">binSalome</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
638 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
639 <span class="s">"WORK"</span><span class="p">),</span>
640 <span class="p">[</span> <span class="s">"-t"</span><span class="p">,</span>
641 <span class="s">"--shutdown-server=1"</span><span class="p">,</span>
642 <span class="n">script_path</span> <span class="p">],</span>
643 <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span>
644 <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">)</span>
646 <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"PY_"</span><span class="p">):</span>
647 <span class="c"># python script.py</span>
648 <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch</span><span class="p">(</span><span class="n">binPython</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
649 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
650 <span class="s">"WORK"</span><span class="p">),</span>
651 <span class="p">[</span><span class="n">script_path</span><span class="p">],</span>
652 <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span> <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">)</span>
654 <span class="k">else</span><span class="p">:</span>
655 <span class="n">opt</span> <span class="o">=</span> <span class="s">"-z 0"</span>
656 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_desktop</span><span class="p">:</span> <span class="n">opt</span> <span class="o">=</span> <span class="s">"--show-desktop=0"</span>
657 <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch_salome</span><span class="p">(</span><span class="n">binSalome</span><span class="p">,</span>
658 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
659 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
660 <span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
661 <span class="s">"WORK"</span><span class="p">),</span>
662 <span class="p">[</span> <span class="n">opt</span><span class="p">,</span>
663 <span class="s">"--shutdown-server=1"</span><span class="p">,</span>
664 <span class="n">script_path</span> <span class="p">],</span>
665 <span class="n">getTmpDir</span><span class="o">=</span><span class="n">tmpDir</span><span class="p">,</span>
666 <span class="n">fin</span><span class="o">=</span><span class="n">killSalome</span><span class="p">,</span>
667 <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span>
668 <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">,</span>
669 <span class="n">delaiapp</span><span class="o">=</span><span class="n">time_out_salome</span><span class="p">)</span>
671 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"status = </span><span class="si">%s</span><span class="s">, elapsed = </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span><span class="p">),</span>
672 <span class="mi">5</span><span class="p">)</span>
674 <span class="c"># create the test result to add in the config object</span>
675 <span class="n">test_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
676 <span class="n">test_info</span><span class="o">.</span><span class="n">testbase</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span>
677 <span class="n">test_info</span><span class="o">.</span><span class="n">grid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span>
678 <span class="n">test_info</span><span class="o">.</span><span class="n">session</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span>
679 <span class="n">test_info</span><span class="o">.</span><span class="n">script</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
681 <span class="n">script_results</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_results</span><span class="p">(</span><span class="n">listTest</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">==</span> <span class="n">time_out</span><span class="p">)</span>
682 <span class="k">for</span> <span class="n">sr</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">script_results</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
683 <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">+=</span> <span class="mi">1</span>
685 <span class="c"># create script result</span>
686 <span class="n">script_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
687 <span class="n">script_info</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">sr</span>
688 <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
689 <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
690 <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span><span class="p">:</span>
691 <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="n">time_out</span>
692 <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o"><</span> <span class="mf">1e-3</span><span class="p">:</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="mi">0</span>
694 <span class="n">callback</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
695 <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">!=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
696 <span class="n">script_info</span><span class="o">.</span><span class="n">callback</span> <span class="o">=</span> <span class="n">callback</span>
698 <span class="n">kfres</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span>
699 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">kfres</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
700 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
701 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">date</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
702 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">expected</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
703 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">comment</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
704 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">fixed</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
706 <span class="n">script_info</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">4</span><span class="p">]</span>
707 <span class="n">script_info</span><span class="o">.</span><span class="n">out</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">5</span><span class="p">]</span>
709 <span class="c"># add it to the list of results</span>
710 <span class="n">test_info</span><span class="o">.</span><span class="n">script</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">script_info</span><span class="p">,</span> <span class="s">''</span><span class="p">)</span>
712 <span class="c"># display the results</span>
713 <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
714 <span class="n">exectime</span> <span class="o">=</span> <span class="s">"(</span><span class="si">%7.3f</span><span class="s"> s)"</span> <span class="o">%</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span>
715 <span class="k">else</span><span class="p">:</span>
716 <span class="n">exectime</span> <span class="o">=</span> <span class="s">""</span>
718 <span class="n">sp</span> <span class="o">=</span> <span class="s">"."</span> <span class="o">*</span> <span class="p">(</span><span class="mi">35</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
719 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
720 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"script </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span>
721 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
722 <span class="n">sp</span><span class="p">,</span>
723 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printc</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">res</span><span class="p">),</span>
724 <span class="n">exectime</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
725 <span class="k">if</span> <span class="n">script_info</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
726 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"Exception in </span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> \
727 <span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
728 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="n">callback</span><span class="p">)),</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
730 <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
731 <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">+=</span> <span class="mi">1</span>
732 <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span><span class="p">:</span>
733 <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">+=</span> <span class="mi">1</span>
734 <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span><span class="p">:</span>
735 <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">+=</span> <span class="mi">1</span>
736 <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">NA_STATUS</span><span class="p">:</span>
737 <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-=</span> <span class="mi">1</span>
738 <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="s">"?"</span><span class="p">:</span>
739 <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">+=</span> <span class="mi">1</span>
741 <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">TESTS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">test_info</span><span class="p">,</span> <span class="s">''</span><span class="p">)</span>
743 <span class="c">##</span>
744 <span class="c"># Runs all tests of a session.</span></div>
745 <div class="viewcode-block" id="Test.run_session_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_session_tests">[docs]</a> <span class="k">def</span> <span class="nf">run_session_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
747 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
748 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"Session = </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
749 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
751 <span class="c"># prepare list of tests to run</span>
752 <span class="n">tests</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
753 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
754 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">))</span>
755 <span class="n">tests</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">".py"</span><span class="p">),</span> <span class="n">tests</span><span class="p">)</span>
756 <span class="n">tests</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">tests</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
758 <span class="c"># build list of known failures</span>
759 <span class="n">cat</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">/"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
760 <span class="n">ignoreDict</span> <span class="o">=</span> <span class="p">{}</span>
761 <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
762 <span class="k">if</span> <span class="n">k</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">cat</span><span class="p">):</span>
763 <span class="n">ignoreDict</span><span class="p">[</span><span class="n">k</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">cat</span><span class="p">):]]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
765 <span class="bp">self</span><span class="o">.</span><span class="n">run_tests</span><span class="p">(</span><span class="n">tests</span><span class="p">,</span> <span class="n">ignoreDict</span><span class="p">)</span>
767 <span class="c">##</span>
768 <span class="c"># Runs all tests of a grid.</span></div>
769 <div class="viewcode-block" id="Test.run_grid_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_grid_tests">[docs]</a> <span class="k">def</span> <span class="nf">run_grid_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
770 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
771 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"grid = </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
772 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
774 <span class="n">grid_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">)</span>
776 <span class="n">sessions</span> <span class="o">=</span> <span class="p">[]</span>
777 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
778 <span class="n">sessions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="c"># user choice</span>
779 <span class="k">else</span><span class="p">:</span>
780 <span class="c"># use all scripts in grid</span>
781 <span class="n">sessions</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">C_IGNORE_GRIDS</span><span class="p">,</span>
782 <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">grid_path</span><span class="p">))</span>
783 <span class="n">sessions</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_path</span><span class="p">,</span>
784 <span class="n">l</span><span class="p">)),</span> <span class="n">sessions</span><span class="p">)</span>
786 <span class="n">sessions</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">sessions</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
787 <span class="k">for</span> <span class="n">session_</span> <span class="ow">in</span> <span class="n">sessions</span><span class="p">:</span>
788 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_path</span><span class="p">,</span> <span class="n">session_</span><span class="p">)):</span>
789 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
790 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">"Session </span><span class="si">%s</span><span class="s"> not"</span>
791 <span class="s">" found"</span> <span class="o">%</span> <span class="n">session_</span><span class="p">)</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
792 <span class="k">else</span><span class="p">:</span>
793 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span> <span class="o">=</span> <span class="n">session_</span>
794 <span class="bp">self</span><span class="o">.</span><span class="n">run_session_tests</span><span class="p">()</span>
796 <span class="c">##</span>
797 <span class="c"># Runs test testbase.</span></div>
798 <div class="viewcode-block" id="Test.run_testbase_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_testbase_tests">[docs]</a> <span class="k">def</span> <span class="nf">run_testbase_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
799 <span class="n">res_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="s">"RESSOURCES"</span><span class="p">)</span>
800 <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">'PYTHONPATH'</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">res_dir</span> <span class="o">+</span>
801 <span class="n">os</span><span class="o">.</span><span class="n">pathsep</span> <span class="o">+</span>
802 <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">'PYTHONPATH'</span><span class="p">])</span>
803 <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">'TT_BASE_RESSOURCES'</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_dir</span>
804 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
805 <span class="s">"TT_BASE_RESSOURCES"</span><span class="p">,</span>
806 <span class="n">res_dir</span><span class="p">,</span>
807 <span class="mi">4</span><span class="p">)</span>
808 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
810 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
811 <span class="n">testbase_label</span> <span class="o">=</span> <span class="s">"Test base = </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
812 <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span><span class="p">)</span>
813 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">testbase_label</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
814 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"-"</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">cleancolor</span><span class="p">(</span><span class="n">testbase_label</span><span class="p">)),</span>
815 <span class="mi">3</span><span class="p">)</span>
816 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
818 <span class="c"># load settings</span>
819 <span class="n">settings_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">res_dir</span><span class="p">,</span> <span class="s">"test_settings.py"</span><span class="p">)</span>
820 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">settings_file</span><span class="p">):</span>
821 <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span>
822 <span class="nb">execfile</span><span class="p">(</span><span class="n">settings_file</span><span class="p">,</span> <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span><span class="p">)</span>
823 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Load test settings</span><span class="se">\n</span><span class="s">"</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
824 <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">'settings_dic'</span><span class="p">]</span>
825 <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">'known_failures_list'</span><span class="p">]</span>
826 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
827 <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="p">{}</span>
828 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">"known_failur"</span>
829 <span class="s">"es_list must be a dictionary (not a list)"</span><span class="p">)</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
830 <span class="k">else</span><span class="p">:</span>
831 <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="p">{}</span>
832 <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
834 <span class="c"># read known failures pyconf</span>
835 <span class="k">if</span> <span class="s">"testerror"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">:</span>
836 <span class="c">#import testerror</span>
837 <span class="c">#self.known_errors = testerror.read_test_failures(</span>
838 <span class="c"># self.config.TOOLS.testerror.file_path,</span>
839 <span class="c"># do_error=False)</span>
840 <span class="k">pass</span>
841 <span class="k">else</span><span class="p">:</span>
842 <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="o">=</span> <span class="bp">None</span>
844 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
845 <span class="n">grids</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="c"># given by user</span>
846 <span class="k">else</span><span class="p">:</span>
847 <span class="c"># select all the grids (i.e. directories) in the directory</span>
848 <span class="n">grids</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">C_IGNORE_GRIDS</span><span class="p">,</span>
849 <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">))</span>
850 <span class="n">grids</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span>
851 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="n">l</span><span class="p">)),</span>
852 <span class="n">grids</span><span class="p">)</span>
854 <span class="n">grids</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">grids</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
855 <span class="k">for</span> <span class="n">grid</span> <span class="ow">in</span> <span class="n">grids</span><span class="p">:</span>
856 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="n">grid</span><span class="p">)):</span>
857 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
858 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span>
859 <span class="s">"grid </span><span class="si">%s</span><span class="s"> does not exist</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">grid</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
860 <span class="k">else</span><span class="p">:</span>
861 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span> <span class="o">=</span> <span class="n">grid</span>
862 <span class="bp">self</span><span class="o">.</span><span class="n">run_grid_tests</span><span class="p">()</span>
864 <div class="viewcode-block" id="Test.run_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_script">[docs]</a> <span class="k">def</span> <span class="nf">run_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_name</span><span class="p">):</span>
865 <span class="k">if</span> <span class="p">(</span><span class="s">'APPLICATION'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span>
866 <span class="n">script_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">):</span>
867 <span class="n">script</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">[</span><span class="n">script_name</span><span class="p">]</span>
868 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">script</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
869 <span class="k">return</span>
871 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
872 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">script</span><span class="p">):</span>
873 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">"WARNING: scrip"</span>
874 <span class="s">"t not found: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">script</span><span class="p">)</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
875 <span class="k">else</span><span class="p">:</span>
876 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="s">"----------- sta"</span>
877 <span class="s">"rt </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">script_name</span><span class="p">)</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
878 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"Run script: </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">script</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
879 <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">script</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
880 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="s">"----------- end"</span>
881 <span class="s">" </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">script_name</span><span class="p">)</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
883 <div class="viewcode-block" id="Test.run_all_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_all_tests">[docs]</a> <span class="k">def</span> <span class="nf">run_all_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
884 <span class="n">initTime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
886 <span class="bp">self</span><span class="o">.</span><span class="n">run_script</span><span class="p">(</span><span class="s">'test_setup'</span><span class="p">)</span>
887 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
889 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span>
890 <span class="n">_</span><span class="p">(</span><span class="s">"=== STARTING TESTS"</span><span class="p">))</span> <span class="o">+</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
891 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
892 <span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
893 <span class="s">'BASES'</span><span class="p">,</span>
894 <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span><span class="p">)</span>
895 <span class="bp">self</span><span class="o">.</span><span class="n">run_testbase_tests</span><span class="p">()</span>
897 <span class="c"># calculate total execution time</span>
898 <span class="n">totalTime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span> <span class="o">-</span> <span class="n">initTime</span>
899 <span class="n">totalTime</span> <span class="o">-=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">microseconds</span><span class="o">=</span><span class="n">totalTime</span><span class="o">.</span><span class="n">microseconds</span><span class="p">)</span>
900 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
901 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"=== END TESTS"</span><span class="p">)),</span> <span class="mi">2</span><span class="p">)</span>
902 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">" </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcInfo</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">totalTime</span><span class="p">)),</span>
903 <span class="mi">2</span><span class="p">,</span>
904 <span class="bp">False</span><span class="p">)</span>
906 <span class="c">#</span>
907 <span class="c"># Start the tests</span>
908 <span class="c">#</span>
909 <span class="bp">self</span><span class="o">.</span><span class="n">run_script</span><span class="p">(</span><span class="s">'test_cleanup'</span><span class="p">)</span>
910 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
912 <span class="c"># evaluate results</span>
913 <span class="n">res_count</span> <span class="o">=</span> <span class="s">"</span><span class="si">%d</span><span class="s"> / </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span><span class="p">,</span>
914 <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span><span class="p">)</span>
916 <span class="n">res_out</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s">"Tests Results: </span><span class="si">%(succeed)d</span><span class="s"> / </span><span class="si">%(total)d</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> \
917 <span class="p">{</span> <span class="s">'succeed'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span><span class="p">,</span> <span class="s">'total'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="p">}</span>
918 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span><span class="p">:</span>
919 <span class="n">res_out</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcSuccess</span><span class="p">(</span><span class="n">res_out</span><span class="p">)</span>
920 <span class="k">else</span><span class="p">:</span>
921 <span class="n">res_out</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcError</span><span class="p">(</span><span class="n">res_out</span><span class="p">)</span>
922 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">res_out</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
924 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
925 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s"> tests TIMEOUT</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
926 <span class="n">res_count</span> <span class="o">+=</span> <span class="s">" TO: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span>
927 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
928 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s"> tests not executed</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
929 <span class="n">res_count</span> <span class="o">+=</span> <span class="s">" NR: </span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span>
931 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span>
932 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
933 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span>
934 <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span><span class="p">:</span>
935 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span>
937 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Status: </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">status</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
939 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span>
941 <span class="c">##</span>
942 <span class="c"># Write margin to show test results.</span></div>
943 <div class="viewcode-block" id="Test.write_test_margin"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.write_test_margin">[docs]</a> <span class="k">def</span> <span class="nf">write_test_margin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tab</span><span class="p">):</span>
944 <span class="k">if</span> <span class="n">tab</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
945 <span class="k">return</span> <span class="s">""</span>
946 <span class="k">return</span> <span class="s">"| "</span> <span class="o">*</span> <span class="p">(</span><span class="n">tab</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s">"+ "</span>
947 </pre></div></div></div>
952 <div class="sphinxsidebar">
953 <div class="sphinxsidebarwrapper">
954 <p class="logo"><a href="../../index.html">
955 <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
956 </a></p><div class="relations">
957 <h3>Related Topics</h3>
959 <li><a href="../../index.html">Documentation overview</a><ul>
960 <li><a href="../index.html">Module code</a><ul>
965 <div id="searchbox" style="display: none">
966 <h3>Quick search</h3>
967 <form class="search" action="../../search.html" method="get">
968 <input type="text" name="q" />
969 <input type="submit" value="Go" />
970 <input type="hidden" name="check_keywords" value="yes" />
971 <input type="hidden" name="area" value="default" />
973 <p class="searchtip" style="font-size: 90%">
974 Enter search terms or a module, class or function name.
977 <script type="text/javascript">$('#searchbox').show(0);</script>
980 <div class="clearer"></div>
986 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.1.3</a>
987 & <a href="https://github.com/bitprophet/alabaster">Alabaster </a>