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 <[email protected]> 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:[email protected]

--
Best Regards,

Ayelet Regev Dabah
Email: [email protected]

_______________________________________________
Pytest-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-dev

Reply via email to