- non-existing suite dir
cnf -: DBG: Found main configuration file in  [PATH]/selftest/suite_test/paths.conf which is [PATH]/selftest/suite_test/paths.conf
cnf -: DBG: MAIN CONFIG:
{'default_suites_conf_path': '[PATH]/selftest/suite_test/default-suites.conf',
 'defaults_conf_path': '[PATH]/selftest/suite_test/defaults.conf',
 'resource_conf_path': '[PATH]/selftest/suite_test/resources.conf',
 'scenarios_dir': ['[PATH]/selftest/suite_test/scenarios'],
 'state_dir': '[PATH]/selftest/suite_test/test_work/state_dir',
 'suites_dir': ['[PATH]/selftest/suite_test/suitedirA',
                '[PATH]/selftest/suite_test/suitedirB'],
 'trial_dir': '[PATH]/selftest/suite_test/trial'}
--- -: ERR: RuntimeError: Suite not found: 'does_not_exist' in [[PATH]/selftest/suite_test/suitedirA, [PATH]/selftest/suite_test/suitedirB]
- no suite.conf
cnf empty_dir: DBG: reading suite.conf
cnf [PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf: ERR: FileNotFoundError: [Errno 2] No such file or directory: '[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf'  [empty_dir↪[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf]
- valid suite dir
cnf test_suite: DBG: reading suite.conf
config:
  suite:
    test_suite:
      test_timeout:
        timeout: '1'
resources:
  bts:
  - label: sysmoCell 5000
    times: '2'
  - times: '1'
    type: sysmo
  ip_address:
  - times: '1'
  modem:
  - times: '2'

- run hello world test
tst test_suite: DBG: {combining='config'}
tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}}  [test_suite↪{combining_scenarios='config'}]

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------
tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...
tst test_suite: DBG: {combining='resources'}
tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}}  [test_suite↪{combining_scenarios='resources'}]
tst test_suite: DBG: {combining='modifiers'}
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [test_suite↪{combining_scenarios='modifiers'}]
tst test_suite: Verifying 3 x bts (candidates: 6)
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
tst test_suite: Verifying 1 x ip_address (candidates: 3)
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
tst test_suite: Verifying 2 x modem (candidates: 16)
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
tst test_suite: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir
tst test_suite: Reserving 3 x bts (candidates: 6)
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
tst test_suite: Reserving 1 x ip_address (candidates: 3)
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
tst test_suite: Reserving 2 x modem (candidates: 16)
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
tst test_suite: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>
tst test_suite: RESERVED RESOURCES for test_suite:
bts
  sysmoCell 5000
  sysmoCell 5000
  sysmoBTS 1002
ip_address
  10.42.42.1
modem
  m7801
  m7802

----------------------------------------------
trial test_suite hello_world.py
----------------------------------------------
tst hello_world.py:[LINENR]: hello world  [test_suite↪hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py'  [test_suite↪hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: one
two
three  [test_suite↪hello_world.py:[LINENR]]
tst hello_world.py:[LINENR] Test passed (N.N sec)  [test_suite↪hello_world.py]
---------------------------------------------------------------------
trial test_suite PASS
---------------------------------------------------------------------
PASS: test_suite (pass: 1, skip: 8)
    pass: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py
    skip: test_suite_params.py
    skip: test_timeout.py
- run report fragment test

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite test_report_fragment.py
----------------------------------------------
tst test_report_fragment.py:[LINENR]: a step in the first fragment  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment1: pass (N.Ns)  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: a step in the second fragment  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment2: pass (N.Ns)  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: a step in the third fragment  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: ----- Report fragment: test_suite/test_report_fragment.py/fragment3: FAIL (N.Ns)  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: ERR: Exception: failure in the third fragment  [test_suite↪test_report_fragment.py:[LINENR]]
tst test_report_fragment.py:[LINENR]: Test FAILED (N.N sec)  [test_suite↪test_report_fragment.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite FAIL
---------------------------------------------------------------------
FAIL: test_suite (fail: 1, skip: 8)
    skip: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    FAIL: test_report_fragment.py (N.N sec) Exception: failure in the third fragment
    skip: test_suite_params.py
    skip: test_timeout.py


################################### junit XML:
<testsuite disabled="8" errors="0" failures="2" hostname="localhost" name="test_suite" skipped="8" tests="9" time="[VAL]" timestamp="[TIMESTAMP]"><testcase classname="test_suite" name="hello_world.py" time="[VAL]"><skipped /><system-out>
----------------------------------------------
trial test_suite hello_world.py
----------------------------------------------
[TIMESTAMP] tst                 hello_world.py:[LINENR]: hello world
[TIMESTAMP] tst                 hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py'
[TIMESTAMP] tst                 hello_world.py:[LINENR]: one
two
three
[TIMESTAMP] tst                   hello_world.py:[LINENR] Test passed (N.N sec)
</system-out></testcase><testcase classname="test_suite" name="mo_mt_sms.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="mo_sms.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="test_error.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="test_fail.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="test_fail_raise.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="test_report_fragment.py" time="[VAL]"><failure type="Exception">failure in the third fragment</failure><system-err>[BACKTRACE]
raise Exception('failure in the third fragment')

Exception: failure in the third fragment
</system-out></testcase><testcase classname="test_suite" name="test_suite_params.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase><testcase classname="test_suite" name="test_timeout.py" time="[VAL]"><skipped /><system-out>test log file not available</system-out></testcase></testsuite>
###################################



- a test with an error

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite test_error.py
----------------------------------------------
tst test_error.py:[LINENR]: I am 'test_suite' / 'test_error.py'  [test_suite↪test_error.py:[LINENR]]  [test_error.py:[LINENR]]
tst test_error.py:[LINENR]: ERR: AssertionError: test_error.py:[LINENR]: assert False  [test_suite↪test_error.py:[LINENR]]  [test_error.py:[LINENR]: assert False]
tst test_error.py:[LINENR]: Test FAILED (N.N sec)  [test_suite↪test_error.py:[LINENR]]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite FAIL
---------------------------------------------------------------------
FAIL: test_suite (fail: 1, skip: 8)
    skip: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    FAIL: test_error.py (N.N sec) AssertionError: test_error.py:[LINENR]: assert False
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py (N.N sec)
    skip: test_suite_params.py
    skip: test_timeout.py

- a test with a failure

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite test_fail.py
----------------------------------------------
tst test_fail.py:[LINENR]: I am 'test_suite' / 'test_fail.py'  [test_suite↪test_fail.py:[LINENR]]  [test_fail.py:[LINENR]]
tst test_fail.py:[LINENR]: ERR: EpicFail: This failure is expected  [test_suite↪test_fail.py:[LINENR]]  [test_fail.py:[LINENR]]
tst test_fail.py:[LINENR]: Test FAILED (N.N sec)  [test_suite↪test_fail.py:[LINENR]]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite FAIL
---------------------------------------------------------------------
FAIL: test_suite (fail: 1, skip: 8)
    skip: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py (N.N sec)
    FAIL: test_fail.py (N.N sec) EpicFail: This failure is expected
    skip: test_fail_raise.py
    skip: test_report_fragment.py (N.N sec)
    skip: test_suite_params.py
    skip: test_timeout.py

- a test with a raised failure

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite test_fail_raise.py
----------------------------------------------
tst test_fail_raise.py:[LINENR]: ERR: ExpectedFail: This failure is expected  [test_suite↪test_fail_raise.py:[LINENR]]  [test_fail_raise.py:[LINENR]: raise ExpectedFail('This failure is expected')]
tst test_fail_raise.py:[LINENR]: Test FAILED (N.N sec)  [test_suite↪test_fail_raise.py:[LINENR]]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite FAIL
---------------------------------------------------------------------
FAIL: test_suite (fail: 1, skip: 8)
    skip: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py (N.N sec)
    skip: test_fail.py (N.N sec)
    FAIL: test_fail_raise.py (N.N sec) ExpectedFail: This failure is expected
    skip: test_report_fragment.py (N.N sec)
    skip: test_suite_params.py
    skip: test_timeout.py
- test with half empty scenario
tst test_suite: DBG: {combining='config'}  [suite.py:[LINENR]]
tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}}  [test_suite↪{combining_scenarios='config'}]  [suite.py:[LINENR]]
tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='config', scenario='foo'}]  [suite.py:[LINENR]]

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------
tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...  [suite.py:[LINENR]]
tst test_suite: DBG: {combining='resources'}  [suite.py:[LINENR]]
tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}}  [test_suite↪{combining_scenarios='resources'}]  [suite.py:[LINENR]]
tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT]
tst test_suite: DBG: {combining='modifiers'}  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [test_suite↪{combining_scenarios='modifiers'}]  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='modifiers', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: Verifying 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Verifying 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Verifying 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir  [util.py:[LINENR]]
tst test_suite: Reserving 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Reserving 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Reserving 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>  [util.py:[LINENR]]
tst test_suite: RESERVED RESOURCES for test_suite:
bts
  sysmoCell 5000
  sysmoCell 5000
  sysmoBTS 1002
ip_address
  10.42.42.1
modem
  m7801
  m7802  [suite.py:[LINENR]]

----------------------------------------------
trial test_suite hello_world.py
----------------------------------------------
tst hello_world.py:[LINENR]: hello world  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py'  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: one
two
three  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR] Test passed (N.N sec)  [test_suite↪hello_world.py]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite PASS
---------------------------------------------------------------------
PASS: test_suite (pass: 1, skip: 8)
    pass: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py
    skip: test_suite_params.py
    skip: test_timeout.py
- test with scenario
tst test_suite: DBG: {combining='config'}  [suite.py:[LINENR]]
tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}}  [test_suite↪{combining_scenarios='config'}]  [suite.py:[LINENR]]
tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='config', scenario='foo'}]  [suite.py:[LINENR]]

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------
tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...  [suite.py:[LINENR]]
tst test_suite: DBG: {combining='resources'}  [suite.py:[LINENR]]
tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}}  [test_suite↪{combining_scenarios='resources'}]  [suite.py:[LINENR]]
tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT]
tst test_suite: DBG: {combining='modifiers'}  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [test_suite↪{combining_scenarios='modifiers'}]  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='modifiers', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: Verifying 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Verifying 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Verifying 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir  [util.py:[LINENR]]
tst test_suite: Reserving 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Reserving 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Reserving 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>  [util.py:[LINENR]]
tst test_suite: RESERVED RESOURCES for test_suite:
bts
  sysmoCell 5000
  sysmoCell 5000
  sysmoBTS 1002
ip_address
  10.42.42.1
modem
  m7801
  m7802  [suite.py:[LINENR]]

----------------------------------------------
trial test_suite hello_world.py
----------------------------------------------
tst hello_world.py:[LINENR]: hello world  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py'  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: one
two
three  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR] Test passed (N.N sec)  [test_suite↪hello_world.py]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite PASS
---------------------------------------------------------------------
PASS: test_suite (pass: 1, skip: 8)
    pass: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py
    skip: test_suite_params.py
    skip: test_timeout.py
- test with scenario and modifiers
tst test_suite: DBG: {combining='config'}  [suite.py:[LINENR]]
tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}}  [test_suite↪{combining_scenarios='config'}]  [suite.py:[LINENR]]
tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='config', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...  [suite.py:[LINENR]]
tst test_suite: DBG: {combining='resources'}  [suite.py:[LINENR]]
tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}}  [test_suite↪{combining_scenarios='resources'}]  [suite.py:[LINENR]]
tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT]
tst test_suite: DBG: {combining='modifiers'}  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [test_suite↪{combining_scenarios='modifiers'}]  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers', scenario='foo'}: DBG: {conf={bts=[{'trx_list': [{'nominal_power': '20'}, {'nominal_power': '20'}]}, {'trx_list': [{'nominal_power': '20'}, {'nominal_power': '20'}]}, {'type': 'sysmo'}]}, scenario='foo'}  [test_suite↪{combining_scenarios='modifiers', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: Verifying 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Verifying 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Verifying 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir  [util.py:[LINENR]]
tst test_suite: Reserving 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Reserving 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Reserving 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>  [util.py:[LINENR]]
tst test_suite: RESERVED RESOURCES for test_suite:
bts
  sysmoCell 5000
  sysmoCell 5000
  sysmoBTS 1002
ip_address
  10.42.42.1
modem
  m7801
  m7802  [suite.py:[LINENR]]
resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.53',
          'band': 'GSM-1800',
          'ipa_unit_id': '7',
          'label': 'sysmoCell 5000',
          'osmo_trx': {'clock_reference': 'external',
                       'launch_trx': 'False',
                       'trx_ip': '10.42.42.112'},
          'trx_list': [{'max_power_red': '3', 'nominal_power': '20'},
                       {'max_power_red': '0', 'nominal_power': '20'}],
          'type': 'osmo-bts-trx'},
         {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.53',
          'band': 'GSM-1800',
          'ipa_unit_id': '7',
          'label': 'sysmoCell 5000',
          'osmo_trx': {'clock_reference': 'external',
                       'launch_trx': 'False',
                       'trx_ip': '10.42.42.112'},
          'trx_list': [{'nominal_power': '20'},
                       {'max_power_red': '1', 'nominal_power': '20'}],
          'type': 'osmo-bts-trx'},
         {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.114',
          'band': 'GSM-1800',
          'ipa_unit_id': '1',
          'label': 'sysmoBTS 1002',
          'type': 'sysmo'}],
 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4',
                 '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
                 'addr': '10.42.42.1'}],
 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f',
            '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
            'imsi': '901700000007801',
            'ki': 'D620F48487B1B782DA55DF6717F08FF9',
            'label': 'm7801',
            'path': '/wavecom_0'},
           {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254',
            '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
            'imsi': '901700000007802',
            'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3',
            'label': 'm7802',
            'path': '/wavecom_1'}]}

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite hello_world.py
----------------------------------------------
tst hello_world.py:[LINENR]: hello world  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: I am 'test_suite' / 'hello_world.py'  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR]: one
two
three  [test_suite↪hello_world.py:[LINENR]]  [hello_world.py:[LINENR]]
tst hello_world.py:[LINENR] Test passed (N.N sec)  [test_suite↪hello_world.py]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite PASS
---------------------------------------------------------------------
PASS: test_suite (pass: 1, skip: 8)
    pass: hello_world.py (N.N sec)
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py
    skip: test_suite_params.py
    skip: test_timeout.py
- test with suite-specific config
tst test_suite: DBG: {combining='config'}  [suite.py:[LINENR]]
tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}}  [test_suite↪{combining_scenarios='config'}]  [suite.py:[LINENR]]
tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'}  [test_suite↪{combining_scenarios='config', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...  [suite.py:[LINENR]]
tst test_suite: DBG: {combining='resources'}  [suite.py:[LINENR]]
tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}}  [test_suite↪{combining_scenarios='resources'}]  [suite.py:[LINENR]]
tst {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT]
tst test_suite: DBG: {combining='modifiers'}  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [test_suite↪{combining_scenarios='modifiers'}]  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers', scenario='foo'}: DBG: {conf={}, scenario='foo'}  [test_suite↪{combining_scenarios='modifiers', scenario='foo'}]  [suite.py:[LINENR]]
tst test_suite: Verifying 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Verifying 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Verifying 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir  [util.py:[LINENR]]
tst test_suite: Reserving 3 x bts (candidates: 6)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: a59640b8ba6a373552b24a6f9f65cadd2347bace
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - max_power_red: '3'
    nominal_power: '10'
  - max_power_red: '0'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: c2feabd082c36a1cdeccb9a5237dfff7dbadb009
  addr: 10.42.42.53
  band: GSM-1800
  ipa_unit_id: '7'
  label: sysmoCell 5000
  osmo_trx:
    clock_reference: external
    launch_trx: 'False'
    trx_ip: 10.42.42.112
  trx_list:
  - nominal_power: '10'
  - max_power_red: '1'
    nominal_power: '12'
  type: osmo-bts-trx
- _hash: 07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9
  addr: 10.42.42.114
  band: GSM-1800
  ipa_unit_id: '1'
  label: sysmoBTS 1002
  type: sysmo
  [resource.py:[LINENR]]
tst test_suite: Reserving 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: cde1debf28f07f94f92c761b4b7c6bf35785ced4
  addr: 10.42.42.1
  [resource.py:[LINENR]]
tst test_suite: Reserving 2 x modem (candidates: 16)  [resource.py:[LINENR]]
tst test_suite: DBG: Picked - _hash: 19c69e45aa090fb511446bd00797690aa82ff52f
  imsi: '901700000007801'
  ki: D620F48487B1B782DA55DF6717F08FF9
  label: m7801
  path: /wavecom_0
- _hash: e1a46516a1fb493b2617ab14fc1693a9a45ec254
  imsi: '901700000007802'
  ki: 47FDB2D55CE6A10A85ABDAD034A5B7B3
  label: m7802
  path: /wavecom_1
  [resource.py:[LINENR]]
tst test_suite: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>  [util.py:[LINENR]]
tst test_suite: RESERVED RESOURCES for test_suite:
bts
  sysmoCell 5000
  sysmoCell 5000
  sysmoBTS 1002
ip_address
  10.42.42.1
modem
  m7801
  m7802  [suite.py:[LINENR]]
resources(test_suite)={'bts': [{'_hash': 'a59640b8ba6a373552b24a6f9f65cadd2347bace',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.53',
          'band': 'GSM-1800',
          'ipa_unit_id': '7',
          'label': 'sysmoCell 5000',
          'osmo_trx': {'clock_reference': 'external',
                       'launch_trx': 'False',
                       'trx_ip': '10.42.42.112'},
          'trx_list': [{'max_power_red': '3', 'nominal_power': '10'},
                       {'max_power_red': '0', 'nominal_power': '12'}],
          'type': 'osmo-bts-trx'},
         {'_hash': 'c2feabd082c36a1cdeccb9a5237dfff7dbadb009',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.53',
          'band': 'GSM-1800',
          'ipa_unit_id': '7',
          'label': 'sysmoCell 5000',
          'osmo_trx': {'clock_reference': 'external',
                       'launch_trx': 'False',
                       'trx_ip': '10.42.42.112'},
          'trx_list': [{'nominal_power': '10'},
                       {'max_power_red': '1', 'nominal_power': '12'}],
          'type': 'osmo-bts-trx'},
         {'_hash': '07d9c8aaa940b674efcbbabdd69f58a6ce4e94f9',
          '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
          'addr': '10.42.42.114',
          'band': 'GSM-1800',
          'ipa_unit_id': '1',
          'label': 'sysmoBTS 1002',
          'type': 'sysmo'}],
 'ip_address': [{'_hash': 'cde1debf28f07f94f92c761b4b7c6bf35785ced4',
                 '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
                 'addr': '10.42.42.1'}],
 'modem': [{'_hash': '19c69e45aa090fb511446bd00797690aa82ff52f',
            '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
            'imsi': '901700000007801',
            'ki': 'D620F48487B1B782DA55DF6717F08FF9',
            'label': 'm7801',
            'path': '/wavecom_0'},
           {'_hash': 'e1a46516a1fb493b2617ab14fc1693a9a45ec254',
            '_reserved_by': 'test_suite-[ID_NUM]-[ID_NUM]',
            'imsi': '901700000007802',
            'ki': '47FDB2D55CE6A10A85ABDAD034A5B7B3',
            'label': 'm7802',
            'path': '/wavecom_1'}]}

---------------------------------------------------------------------
trial test_suite
---------------------------------------------------------------------

----------------------------------------------
trial test_suite test_suite_params.py
----------------------------------------------
tst test_suite_params.py:[LINENR]: starting test  [test_suite↪test_suite_params.py:[LINENR]]  [test_suite_params.py:[LINENR]]
tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho',
 'test_suite_params': {'one_bool_parameter': 'true',
                       'second_list_parameter': ['23', '45']},
 'test_timeout': {'timeout': '1'}}  [test_suite↪test_suite_params.py:[LINENR]]  [test_suite_params.py:[LINENR]]
tst test_suite_params.py:[LINENR]: SPECIFIC TEST CONFIG: {'one_bool_parameter': 'true', 'second_list_parameter': ['23', '45']}  [test_suite↪test_suite_params.py:[LINENR]]  [test_suite_params.py:[LINENR]]
tst test_suite_params.py:[LINENR] Test passed (N.N sec)  [test_suite↪test_suite_params.py]  [test.py:[LINENR]]

----------------------------------------------
trial test_suite test_timeout.py
----------------------------------------------
tst test_timeout.py:[LINENR]: starting test and waiting to receive Timeout after 1 seconds  [test_suite↪test_timeout.py:[LINENR]]  [test_timeout.py:[LINENR]]
tst test_timeout.py:[LINENR]: ERR: Error: test_timeout.py:[LINENR] Test Timeout triggered: 1 seconds elapsed [test_suite↪test_timeout.py:[LINENR]↪test_timeout.py]  [test_suite↪test_timeout.py:[LINENR]]  [testenv.py:[LINENR]: raise log_module.Error('Test Timeout triggered: %d seconds elapsed' % self._test.elapsed_time())]
tst test_timeout.py:[LINENR]: Test FAILED (N.N sec)  [test_suite↪test_timeout.py:[LINENR]]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial test_suite FAIL
---------------------------------------------------------------------
FAIL: test_suite (fail: 1, pass: 1, skip: 7)
    skip: hello_world.py
    skip: mo_mt_sms.py
    skip: mo_sms.py
    skip: test_error.py
    skip: test_fail.py
    skip: test_fail_raise.py
    skip: test_report_fragment.py
    pass: test_suite_params.py (N.N sec)
    FAIL: test_timeout.py (N.N sec) Error: test_timeout.py:[LINENR] Test Timeout triggered: 1 seconds elapsed [test_suite↪test_timeout.py:[LINENR]↪test_timeout.py]
- test with template overlay
cnf suiteC: DBG: reading suite.conf  [suite.py:[LINENR]]
tst suiteC: DBG: {combining='config'}  [suite.py:[LINENR]]
tst {combining_scenarios='config'}: DBG: {definition_conf={}}  [suiteC↪{combining_scenarios='config'}]  [suite.py:[LINENR]]

---------------------------------------------------------------------
trial suiteC
---------------------------------------------------------------------
tst suiteC: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ...  [suite.py:[LINENR]]
tst suiteC: DBG: {combining='resources'}  [suite.py:[LINENR]]
tst {combining_scenarios='resources'}: DBG: {definition_conf={ip_address=[{'addr': '10.42.42.2'}]}}  [suiteC↪{combining_scenarios='resources'}]  [suite.py:[LINENR]]
tst suiteC: DBG: {combining='modifiers'}  [suite.py:[LINENR]]
tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}}  [suiteC↪{combining_scenarios='modifiers'}]  [suite.py:[LINENR]]
tst suiteC: Verifying 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c
  addr: 10.42.42.2
  [resource.py:[LINENR]]
tst suiteC: DBG: FileWatch: scheduling watch for directory [PATH]/selftest/suite_test/test_work/state_dir  [util.py:[LINENR]]
tst suiteC: Reserving 1 x ip_address (candidates: 3)  [resource.py:[LINENR]]
tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c
  addr: 10.42.42.2
  [resource.py:[LINENR]]
tst suiteC: DBG: FileWatch: unscheduling watch <ObservedWatch: path=[PATH]/selftest/suite_test/test_work/state_dir, is_recursive=False>  [util.py:[LINENR]]
tst suiteC: RESERVED RESOURCES for suiteC:
ip_address
  10.42.42.2  [suite.py:[LINENR]]

----------------------------------------------
trial suiteC test_template_overlay.py
----------------------------------------------
tst test_template_overlay.py:[LINENR]: - Testing: expect to fail on invalid templates overlay dir  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/nonexistent-templatedir  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py]  [testenv.py:[LINENR]]
tst test_template_overlay.py:[LINENR]: success: setting non-existing templates dir raised RuntimeError  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py]  [testenv.py:[LINENR]]
--- ReservedResources: DBG: requesting use of ip_address {specifics={}}  [resource.py:[LINENR]]
tst suiteC: Using 1 x ip_address (candidates: 1)  [resource.py:[LINENR]]
tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c
  _reserved_by: suiteC-[ID_NUM]-[ID_NUM]
  addr: 10.42.42.2
  [resource.py:[LINENR]]
--- ReservedResources: DBG: {available=1}  [resource.py:[LINENR]]
--- ReservedResources: DBG: {using={_hash='fd103b22c7cf2480d609150e06f4bbd92ac78d8c', _reserved_by='suiteC-[ID_NUM]-[ID_NUM]', addr='10.42.42.2'}}  [resource.py:[LINENR]]
tst test_template_overlay.py:[LINENR]: - Testing: original template  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42.2/osmo-stp.cfg'}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: STP CONFIG:
{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c',
                        '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]',
                        '_used': True,
                        'addr': '10.42.42.2'}}}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
cnf Templates: DBG: rendering osmo-stp.cfg.tmpl  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪Templates]  [template.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: ! Configuration rendered by osmo-gsm-tester
log stderr
 logging filter all 1
 logging color 1
 logging print category 1
 logging print category-hex 0
 logging print level 1
 logging print file basename last
 logging print extended-timestamp 1
 logging level set-all debug
line vty
 no login
 bind 10.42.42.2
!ctrl
! bind 10.42.42.2
cs7 instance 0
 xua rkm routing-key-allocation dynamic-permitted
 listen m3ua 2905
  accept-asp-connections dynamic-permitted
  local-ip 10.42.42.2
  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
tst test_template_overlay.py:[LINENR]: - Testing:overlay template  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
tst test_template_overlay.py:[LINENR]: - After creating the new template, still old template is used  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42_2.2/osmo-stp.cfg'}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: STP CONFIG:
{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c',
                        '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]',
                        '_used': True,
                        'addr': '10.42.42.2'}}}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
cnf Templates: DBG: rendering osmo-stp.cfg.tmpl  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪Templates]  [template.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: ! Configuration rendered by osmo-gsm-tester
log stderr
 logging filter all 1
 logging color 1
 logging print category 1
 logging print category-hex 0
 logging print level 1
 logging print file basename last
 logging print extended-timestamp 1
 logging level set-all debug
line vty
 no login
 bind 10.42.42.2
!ctrl
! bind 10.42.42.2
cs7 instance 0
 xua rkm routing-key-allocation dynamic-permitted
 listen m3ua 2905
  accept-asp-connections dynamic-permitted
  local-ip 10.42.42.2
  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
tst test_template_overlay.py:[LINENR]: - New template is used after re-generating cache with set_overlay_template_dir:  [suiteC↪test_template_overlay.py:[LINENR]]  [test_template_overlay.py:[LINENR]]
tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py]  [testenv.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42_3.2/osmo-stp.cfg'}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: STP CONFIG:
{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c',
                        '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]',
                        '_used': True,
                        'addr': '10.42.42.2'}}}  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
cnf Templates: DBG: rendering osmo-stp.cfg.tmpl  [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪Templates]  [template.py:[LINENR]]
run osmo-stp_10.42.42.2: DBG: ! Overlay Config file genreated by test
line vty
 no login
 bind 10.42.42.2
          [suiteC↪test_template_overlay.py:[LINENR]↪test_template_overlay.py↪osmo-stp_10.42.42.2]  [stp_osmo.py:[LINENR]]
tst test_template_overlay.py:[LINENR] Test passed (N.N sec)  [suiteC↪test_template_overlay.py]  [test.py:[LINENR]]
---------------------------------------------------------------------
trial suiteC PASS
---------------------------------------------------------------------
PASS: suiteC (pass: 1)
    pass: test_template_overlay.py (N.N sec)

- graceful exit.