[pytest-dev] Question on item result
Ayelet Regev
ayelet at fabrixsystems.com
Wed Sep 17 17:38:06 CEST 2014
thanks!!!
your suggestion was very helpful.
to use*item.rep_call.outcome* and not *report.outcome*
def pytest_runtest_makereport(__multicall__, item, call):
report = __multicall__.execute()
setattr(item, "rep_" + report.when, report)
if call.when == "teardown" :
try:
item.config.logger.info2((item.rep_call.outcome))
except:
pass
return report
On 17/09/14 17:50, Ayelet Regev wrote:
> i am using this hook...
>
> i have 1 test with 2 configurations provided using item._request.cfg
>
> then when im running the tests using xdist, i see that
> "slaveoutput["exitstatus"] is aware of the failure. but report.outcome
> climing both have "passed"
>
>
>
> def test_cm_delete(request):
> cfg = request.cfg
> if cfg.get("channel_name") == "working_20":
> assert True
> else:
> assert False
>
>
> def pytest_runtest_makereport(__multicall__, item, call):
> report = __multicall__.execute()
> if call.when == "teardown" :
> try:
> *item.config.logger.info2("item %s with cfg %s - Report OUTCOME : %s"
> % (item.name,item._request.cfg,report.outcome))*
> except:
> pass
> return report
>
>
> def pytest_testnodedown(node, error):
> *node.config.logger.info2("slaveoutput of node %s" % (node.slaveoutput))*
>
>
>
>
>
> log:
>
>
> [2014-09-17 17:44:56,209][MainThread] Run-test: test_cm_delete -
> [{'comment': u'ChannelMapname', 'name': u'channel_name',
> 'defaultvalue': u'bbbbbb', 'value': u'working_21', 'choices':
> u'functionnametosendtoknownURLwithargsofactivityandfuncname', 'type':
> u'string'}]
> [2014-09-17 17:44:56,217][MainThread] Teardown: test_cm_delete -
> [{'comment': u'ChannelMapname', 'name': u'channel_name',
> 'defaultvalue': u'bbbbbb', 'value': u'working_21', 'choices':
> u'functionnametosendtoknownURLwithargsofactivityandfuncname', 'type':
> u'string'}]
> [2014-09-17 17:44:56,218][MainThread] *item test_cm_delete with cfg
> {u'channel_name': u'working_21'} - Report OUTCOME : passed*
> [2014-09-17 17:44:56,225][MainThread] *slaveoutput of node
> {'exitstatus': 1}*
> [2014-09-17 17:45:00,218][MainThread] Run-test: test_cm_delete -
> [{'comment': u'ChannelMapname', 'name': u'channel_name',
> 'defaultvalue': u'aaaaaaaaaaaaa', 'value': u'working_20', 'choices':
> u'functionname to send to known URL with args of activity and
> funcname', 'type': u'string'}]
> [2014-09-17 17:45:00,219][MainThread] Teardown: test_cm_delete -
> [{'comment': u'ChannelMapname', 'name': u'channel_name',
> 'defaultvalue': u'aaaaaaaaaaaaa', 'value': u'working_20', 'choices':
> u'functionname to send to known URL with args of activity and
> funcname', 'type': u'string'}]
> [2014-09-17 17:45:00,220][MainThread] *item test_cm_delete with cfg
> {u'channel_name': u'working_20'} - Report OUTCOME : passed*
> [2014-09-17 17:45:00,226][MainThread]*slaveoutput of node
> {'exitstatus': 0}*
>
>
> console output:
>
> platform linux2 -- Python 2.7.6 -- py-1.4.23 -- pytest-2.6.1 --
> /usr/bin/python
> plugins: xdist, timeout, cov
> [gw0] linux2 Python 2.7.6 cwd:
> /home/ayelet/Scripts/sysu/root/var/sysu/cache/Activities
> [gw1] linux2 Python 2.7.6 cwd:
> /home/ayelet/Scripts/sysu/root/var/sysu/cache/Activities
> [gw0] Python 2.7.6 (default, Mar 22 2014, 22:59:56) -- [GCC 4.8.2]
> [gw1] Python 2.7.6 (default, Mar 22 2014, 22:59:56) -- [GCC 4.8.2]
> gw0 [2] / gw1 [2]
> scheduling tests via LoadScheduling
>
> Ingest/ChannelMap/delete_cm/test_delete_cm.py::test_cm_delete
> *[gw0] FAILED
> Ingest/ChannelMap/delete_cm/test_delete_cm.py::test_cm_delete **
> **[gw1] PASSED
> Ingest/ChannelMap/delete_cm/test_delete_cm.py::test_cm_delete *
>
> ============================================================================
> FAILURES
> =============================================================================
> _________________________________________________________________________
> test_cm_delete
> __________________________________________________________________________
> [gw0] linux2 -- Python 2.7.6 /usr/bin/python
> request = <FixtureRequest for <Function 'test_cm_delete'>>
>
> def test_cm_delete(request):
> cfg = request.cfg
> servers_data = request.config.properties["Servers"]
> #request.config.logger.info2("AYELET WAS HERE %s" % (cfg))
> request.basa = "BASA"
> #assert delete_cm(cfg,servers_data) == 200
> if cfg.get("channel_name") == "working_20":
> assert True
> else:
> > assert False
> E assert False
>
> Ingest/ChannelMap/delete_cm/test_delete_cm.py:22: AssertionError
> *=============================================================== 1
> failed, 1 passed in 6.23 seconds
> ================================================================*
>
>
>
>
> On 17/09/14 17:28, Holger Krekel wrote:
>> You might adapt this example:
>> http://pytest.org/latest/example/simple.html#making-test-result-information-available-in-fixtures
>>
>> On September 17, 2014 3:18:05 PM CEST, Ayelet Regev
>> <ayelet at fabrixsystems.com> wrote:
>>
>> Hi,
>>
>> I want to be able to get the result from each item at teardown.
>> What should i look for?
>>
>>
>> --
>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
> --
> Best Regards,
>
> Ayelet Regev Dabah
> Email:ayelet at fabrixsystems.com
--
Best Regards,
Ayelet Regev Dabah
Email: ayelet at fabrixsystems.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20140917/1f15f9da/attachment-0001.html>
More information about the Pytest-dev
mailing list