[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