3

使用加载 xmlrpclib 的插件运行 py.test 时,测试运行失败并显示:

INTERNALERROR> Traceback(最近一次调用最后一次):
INTERNALERROR> 文件“/Library/Python/2.7/site-packages/pytest-2.2.4-py2.7.egg/_pytest/main.py”,第 70 行,在 wrap_session
INTERNALERROR > config.pluginmanager.do_configure(config)
INTERNALERROR> 文件“/Library/Python/2.7/site-packages/pytest-2.2.4-py2.7.egg/_pytest/core.py”,第 267 行,在 do_configure
INTERNALERROR> config.hook.pytest_configure(config=self._config)
INTERNALERROR> 文件“/Library/Python/2.7/site-packages/pytest-2.2.4-py2.7.egg/_pytest/core.py”,第 421 行,在call
INTERNALERROR> return self._docall(methods, kwargs)
INTERNALERROR> 文件“/Library/Python/2.7/site-packages/pytest-2.2.4-py2.7.egg/_pytest/core.py”,第 432 行,在 _docall INTERNALERROR> res = mc.execute()
INTERNALERROR>文件“/Library/Python/2.7/site-packages/pytest-2.2.4-py2.7.egg/_pytest/core.py”,第 350 行,在执行
INTERNALERROR> res = method(**kwargs)
INTERNALERROR> File “/Library/Python/2.7/site-packages/pytest_marker_bugzilla-0.01-py2.7.egg/pytest_marker_bugzilla.py”,第 94 行,在 pytest_configure
INTERNALERROR> bz = bugzilla.Bugzilla(url=url)
INTERNALERROR> 文件“build/ bdist.macosx-10.7-intel/egg/bugzilla/ init .py",第 75 行,在init
INTERNALERROR> c = getBugzillaClassForURL(kwargs['url'])
INTERNALERROR> 文件“build/bdist.macosx-10.7-intel/egg/bugzilla/ init .py”,第 26 行,在 getBugzillaClassForURL
INTERNALERROR> s = xmlrpclib.ServerProxy(url)
INTERNALERROR> 文件“build/bdist.macosx-10.7- intel/egg/xmlrpclib.py”,第 1215 行,在init
INTERNALERROR> 引发 IOError,“不支持的 XML-RPC 协议”
INTERNALERROR> > > IOError:不支持的 XML-RPC 协议

我已经验证 xmlrpclib 可以与一个简单的测试程序一起使用,这个程序从图片中删除了 py.test。

#!/usr/bin/env python

import xmlrpclib
import bugzilla
import sys
for i in sys.path:
    print i

url = 'https://bugzilla.redhat.com/xmlrpc.cgi'
u = ' '
p = ' '

try:
    proxy = xmlrpclib.ServerProxy(url)
except(), e:
    print e
b = bugzilla.Bugzilla(url=url)
b.login(u,p)
bug = b.getbugsimple('12345')
print bug

上面的程序在执行时按预期返回。我不知道这里发生了什么。我什至在 py.test 和上面的测试程序中都添加了 print sys.path,发现除了执行目录之外,路径相同,test.py 为 /Users/esammons ,test.py 为 /usr/local/bin py.test。

为了进一步排除我将 /usr/local/bin/py.test 和 /usr/local/bin/py.test-2.7 复制到我的项目根目录的问题,发生了同样的错误。

谢谢!

4

1 回答 1

4

该问题是由我的 cfg 文件中的值的格式引起的。我正在使用 ConfigParser 来解析我的配置文件;cfg 文件具有以下格式。

[DEFAULT]
key = value
key2 = value
key3 = value

该问题是由于我将值括在引号('value')中引起的。具体来说:

错误的

bugzilla_url = 'https://bugzilla.example.com/xmlrpc.cgi'

bugzilla_url = https://bugzilla.example.com/xmlrpc.cgi
于 2012-06-19T18:34:49.993 回答