<p>pespin <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/15569">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">suite_test: suite requires the fake trial to implement get_run_dir()<br><br>If class Test calls get_run_dir(), it will generate the run dir from<br>Suite.get_run_dir() + append, and Suite.get_run_dir() in turn will do<br>the same with Trial.get_run_dir(). In suite_test.py, however, we are<br>passing a plain log.Origin object (parent of Trial), which doesn't<br>implement this function. We need to add it since tests will start using<br>get_run_dir() to write their own log files.<br><br>Generated tmp files are deleted on success and left there on error, in<br>order to be able to debug stuff easily.<br><br>Change-Id: Ic8326659a9ced0351e1e7e57ef21ce36f777729a<br>---<br>M selftest/suite_test.py<br>1 file changed, 24 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/selftest/suite_test.py b/selftest/suite_test.py</span><br><span>index db19ccc..115d76e 100755</span><br><span>--- a/selftest/suite_test.py</span><br><span>+++ b/selftest/suite_test.py</span><br><span>@@ -1,10 +1,26 @@</span><br><span> #!/usr/bin/env python3</span><br><span> import os</span><br><span> import _prep</span><br><span style="color: hsl(0, 100%, 40%);">-from osmo_gsm_tester import log, suite, config, report</span><br><span style="color: hsl(120, 100%, 40%);">+import shutil</span><br><span style="color: hsl(120, 100%, 40%);">+from osmo_gsm_tester import log, suite, config, report, util</span><br><span> </span><br><span> config.ENV_CONF = './suite_test'</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+example_trial_dir = os.path.join('test_trial_tmp')</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+class FakeTrial(log.Origin):</span><br><span style="color: hsl(120, 100%, 40%);">+    def __init__(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        super().__init__(log.C_TST, 'trial')</span><br><span style="color: hsl(120, 100%, 40%);">+        self.dir = util.Dir(example_trial_dir)</span><br><span style="color: hsl(120, 100%, 40%);">+        self._run_dir = None</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    def get_run_dir(self):</span><br><span style="color: hsl(120, 100%, 40%);">+        if self._run_dir is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+            return self._run_dir</span><br><span style="color: hsl(120, 100%, 40%);">+        self._run_dir = util.Dir(self.dir.new_child('test_run'))</span><br><span style="color: hsl(120, 100%, 40%);">+        self._run_dir.mkdir()</span><br><span style="color: hsl(120, 100%, 40%);">+        return self._run_dir</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #log.style_change(trace=True)</span><br><span> </span><br><span> print('- non-existing suite dir')</span><br><span>@@ -20,7 +36,7 @@</span><br><span> print(config.tostr(s_def.conf))</span><br><span> </span><br><span> print('- run hello world test')</span><br><span style="color: hsl(0, 100%, 40%);">-trial = log.Origin(log.C_TST, 'trial')</span><br><span style="color: hsl(120, 100%, 40%);">+trial = FakeTrial()</span><br><span> s = suite.SuiteRun(trial, 'test_suite', s_def)</span><br><span> results = s.run_tests('hello_world.py')</span><br><span> print(report.suite_to_text(s))</span><br><span>@@ -43,7 +59,7 @@</span><br><span> print(output)</span><br><span> </span><br><span> print('- test with half empty scenario')</span><br><span style="color: hsl(0, 100%, 40%);">-trial = log.Origin(log.C_TST, 'trial')</span><br><span style="color: hsl(120, 100%, 40%);">+trial = FakeTrial()</span><br><span> scenario = config.Scenario('foo', 'bar')</span><br><span> scenario['resources'] = { 'bts': [{'type': 'osmo-bts-trx'}] }</span><br><span> s = suite.SuiteRun(trial, 'test_suite', s_def, [scenario])</span><br><span>@@ -51,7 +67,7 @@</span><br><span> print(report.suite_to_text(s))</span><br><span> </span><br><span> print('- test with scenario')</span><br><span style="color: hsl(0, 100%, 40%);">-trial = log.Origin(log.C_TST, 'trial')</span><br><span style="color: hsl(120, 100%, 40%);">+trial = FakeTrial()</span><br><span> scenario = config.Scenario('foo', 'bar')</span><br><span> scenario['resources'] = { 'bts': [{ 'times': '2', 'type': 'osmo-bts-trx', 'trx_list': [{'nominal_power': '10'}, {'nominal_power': '12'}]}, {'type': 'sysmo'}] }</span><br><span> s = suite.SuiteRun(trial, 'test_suite', s_def, [scenario])</span><br><span>@@ -59,7 +75,7 @@</span><br><span> print(report.suite_to_text(s))</span><br><span> </span><br><span> print('- test with scenario and modifiers')</span><br><span style="color: hsl(0, 100%, 40%);">-trial = log.Origin(log.C_TST, 'trial')</span><br><span style="color: hsl(120, 100%, 40%);">+trial = FakeTrial()</span><br><span> scenario = config.Scenario('foo', 'bar')</span><br><span> scenario['resources'] = { 'bts': [{ 'times': '2', 'type': 'osmo-bts-trx', 'trx_list': [{'nominal_power': '10'}, {'nominal_power': '12'}]}, {'type': 'sysmo'}] }</span><br><span> scenario['modifiers'] = { 'bts': [{ 'times': '2', 'trx_list': [{'nominal_power': '20'}, {'nominal_power': '20'}]}, {'type': 'sysmo'}] }</span><br><span>@@ -70,4 +86,7 @@</span><br><span> print(report.suite_to_text(s))</span><br><span> </span><br><span> print('\n- graceful exit.')</span><br><span style="color: hsl(120, 100%, 40%);">+#deleting generated tmp trial dir:</span><br><span style="color: hsl(120, 100%, 40%);">+shutil.rmtree(example_trial_dir, ignore_errors=True)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/15569">change 15569</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/15569"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic8326659a9ced0351e1e7e57ef21ce36f777729a </div>
<div style="display:none"> Gerrit-Change-Number: 15569 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>