[pytest-dev] Could we disable stack info in pytest?

徐荣中 xurongzhong at gmail.com
Tue Feb 26 11:53:49 CET 2013


Hi, all:
      when a fail occur, pytest print a lot of error info.
      Could we disable stack info in pytest? We only need error summary
info like following:

_____________________________________________________________________
test_ntp
______________________________________________________________________

    @pytest.mark.webtest
    @pytest.mark.high
    def test_ntp():
        host = snmp.Snmp()
        host.snmp_connect(hostname='172.23.191.53', version=2,
community='private')
        for ip in ('33.33.1.2', '172.22.1.8'):
            host.snmp_set_check('ntpPrimaryServer.0=' + ip)
        for ntpClientEnabled in ('true', 'false'):
>           host.snmp_set_check('ntpClientEnabled.1=' + ntpClientEnabled)

robot_test.py:15:


Thanks!
Andrew

Following is code and run result:

# vi robot_test.py

#! /usr/bin/env python
#coding=utf-8

from adva_configure import *
import snmp

@pytest.mark.webtest
@pytest.mark.high
def test_ntp():
    host = snmp.Snmp()
    host.snmp_connect(hostname='172.23.191.53', version=2,
community='private')
    for ip in ('33.33.1.2', '172.22.1.8'):
        host.snmp_set_check('ntpPrimaryServer.0=' + ip)
    for ntpClientEnabled in ('true', 'false'):
        host.snmp_set_check('ntpClientEnabled.1=' + ntpClientEnabled)


def test_something_quick():

    assert 1 == 1
    print "\n test_something_quick"

def test_another():
    pass

#pytest.main("robot_test.py -sv")



[root at SZX-SRV-AUTOMATION python]# py.test -sv robot_test.py
================================================================ test
session starts
================================================================
platform linux2 -- Python 2.6.6 -- pytest-2.3.4 -- /usr/bin/python
collected 3 items

robot_test.py:7: test_ntp
==============================Test Case: test_ntp

        python.py:152  robot_test.py:7   test_ntp

        robot_test.py:11  snmp.py:538   snmp_connect
                snmp_connect(172.23.191.53, 2, 161, 30000000, 0, private)

        robot_test.py:13  snmp.py:875   snmp_set_check
                snmp_set_check(('ntpPrimaryServer.0=33.33.1.2',))

        snmp.py:913  snmp.py:808   snmp_set
                snmp_set(('ntpPrimaryServer.0=33.33.1.2',))

        snmp.py:914  snmp.py:683   snmp_get
                 snmp_get(('ntpPrimaryServer.0=33.33.1.2',))

        robot_test.py:13  snmp.py:875   snmp_set_check
                snmp_set_check(('ntpPrimaryServer.0=172.22.1.8',))

        snmp.py:913  snmp.py:808   snmp_set
                snmp_set(('ntpPrimaryServer.0=172.22.1.8',))

        snmp.py:914  snmp.py:683   snmp_get
                 snmp_get(('ntpPrimaryServer.0=172.22.1.8',))

        robot_test.py:15  snmp.py:875   snmp_set_check
                snmp_set_check(('ntpClientEnabled.1=true',))

        snmp.py:913  snmp.py:808   snmp_set
                snmp_set(('ntpClientEnabled.1=true',))

        snmp.py:857  snmp.py:683   snmp_get
                 snmp_get(('-s', 'lastSetErrorInformation.0'))
FAILED
==============================End of Test Case

robot_test.py:18: test_something_quick
==============================Test Case: test_something_quick

        python.py:152  robot_test.py:18   test_something_quick

 test_something_quick
PASSED
==============================End of Test Case

robot_test.py:23: test_another
==============================Test Case: test_another

        python.py:152  robot_test.py:23   test_another
PASSED
==============================End of Test Case


=====================================================================
FAILURES
======================================================================
_____________________________________________________________________
test_ntp
______________________________________________________________________

    @pytest.mark.webtest
    @pytest.mark.high
    def test_ntp():
        host = snmp.Snmp()
        host.snmp_connect(hostname='172.23.191.53', version=2,
community='private')
        for ip in ('33.33.1.2', '172.22.1.8'):
            host.snmp_set_check('ntpPrimaryServer.0=' + ip)
        for ntpClientEnabled in ('true', 'false'):
>           host.snmp_set_check('ntpClientEnabled.1=' + ntpClientEnabled)

robot_test.py:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'snmp.Snmp'>, args = ('ntpClientEnabled.1=true',), var_list =
[<netsnmp.client.Varbind object at 0x99616cc>]
var_list_txt = [{'expect_value': 'true', 'index': '1', 'name':
'ntpClientEnabled.1', 'noid': '.1.3.6.1.4.1.2544.1.12.2.1.10.1', ...}]

    @classmethod
    def snmp_set_check(self, *args):
        '''
            *Set and check a list of soids and values. *

            --Without '-N' (negative)  tag, for example
            snmp_set_check('ecpaControlDuration.1.1.1.1=20'),
            set the ecpaControlDuration.1.1.1.1 to 20 and check result.
Test fail
            - a, errors from Node: lastSetError
            - b, timeout and other errors from netsnmp.
            - c, Node and index Error etc from adva python snmp library.
            - d, value not equal

            --With '-N' (negative) tag, for example
            snmp_set('ecpaControlDuration.1.1.1.1=0, '-N'),
            set the ecpaControlDuration.1.1.1.1 to 20 and Test fails if:
            - a, set ok
            - b, Node Error etc(index not included) from adva python snmp
library.
            - c, timeout and other errors from netsnmp.

            | *Fixed argument* | *type* | *description* |
            | *args | string | one or more string like
ecpaControlDuration.1.1.1.1=\
            0, -N, ntpClientEnabled.0=false -c true |

            | *optional argument* | *type* | *description*  |
            | -N | bool switch | With this tag do Negative check. \
            Without this tag do normal check. |

            | *Return type* | *Example* |
            |  None | None |

            *--Robot Example*
            | snmp_set_check | ntpClientEnabled.0=false -c true | \
            ecpaControlTestType.1.1.24.1=createAndGo | -N |
            | snmp_set_check | ecpaControlTestType.1.1.24.1=createAndGo' |
            '''
        print colors.yellow('\t\tsnmp_set_check({0})'.format(args))
        var_list, var_list_txt = _convert_args_to_list(args,
return_txt=True)
>       snmp_result = Snmp.snmp_set(*args)

/opt/adva/snmp.py:913:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <class 'snmp.Snmp'>, args = ('ntpClientEnabled.1=true',), var_list =
[<netsnmp.client.Varbind object at 0x996160c>]
var_list_txt = [{'expect_value': 'true', 'index': '1', 'name':
'ntpClientEnabled.1', 'noid': '.1.3.6.1.4.1.2544.1.12.2.1.10.1', ...}]
snmp_result = 0

    @classmethod
    def snmp_set(self, *args):
        '''
            --Set a list of soids and values.

            -Without '-N' (negative) tag, for example
            snmp_set('ecpaControlDuration.1.1.1.1=20'),
            set the ecpaControlDuration.1.1.1.1 to 20 . Test fail if:
            - a, errors from Node: lastSetError
            - b, timeout and other errors from netsnmp.
            - c, Node and index Error etc from adva python snmp library.

            -With '-N' (negative) tag, for example
            snmp_set('ecpaControlDuration.1.1.1.1=0, '-N'),
            set the ecpaControlDuration.1.1.1.1 to 20 and Test fails if:
            - a, set ok
            - b, Node Error etc(index not included) from adva python snmp
library.
            - c, timeout and other errors from netsnmp.

            | *Fixed argument* | *type* | *description* |
            | *args | string | one or more string like
ecpaControlDuration.1.1.1.1=\
            0, -N |

            | *optional argument* | *type* | *description*  |
            | -N | bool switch | With this tag do Negative check. \
            Without this tag do normal check. |

            | *Return type* | *Example* |
            |  None | None |

            *--Robot Example*
            | snmp set | ecpaControlDuration.1.1.1.1=0 | -N |
            | snmp set | ecpaControlDuration.1.1.1.1=20 |
            '''

        print colors.yellow('\t\tsnmp_set({0})'.format(args))

        var_list, var_list_txt = _convert_args_to_list(args,
return_txt=True)
        snmp_result = Snmp.client.set(var_list)
        # netsnmp python binding return 0 if set fail, return 1 if set ok
        # we need to convert it to the same format as snmp set.
        if snmp_result == 1 and  Snmp.reverse:
            output_console_error(
                "SnmpSetNegativeError",
                str(args))
        if snmp_result == 1 and  (not Snmp.reverse):
            return
        if snmp_result == 0 and  (not Snmp.reverse):
            #print colors.red('\t\t snmp_set Error')
            error_info = Snmp.snmp_get('-s', "lastSetErrorInformation.0")
            #print colors.red('\t\t lastSetErrorInformation: '),
>           assert  0 == 1
E           assert 0 == 1

/opt/adva/snmp.py:859: AssertionError
======================================================== 1 failed, 2 passed
in 2.34 seconds ========================================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20130226/cd5a71b0/attachment-0001.html>


More information about the Pytest-dev mailing list