[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