当然可以。就像你预期的那样。这是我对关键配置详细信息的验证:
- 一个空的测试项目托管在
http://127.0.0.1:8000/trac/
- 项目配置为使用基本身份验证,这是 Python 唯一支持的
xmlrpclib
。
'foo'
具有密码的用户'bar'
,同时具有XML_RPC
权限(允许通过 API 调用)和TICKET_VIEW
允许查看工单的权限。
- 我创建了 2 张票,
#1
在#2
仍然开放时关闭。
交互代码:
>>> import xmlrpclib
>>> server = xmlrpclib.ServerProxy('http://foo:bar@127.0.0.1:8000/trac/login/rpc')
>>> server.ticket.query('max=0')
[1, 2]
>>> server.ticket.query('max=0&status!=closed')
[2]
>>> server.ticket.get(2)
[2,
<DateTime '20130104T11:48:08' at 10392c2d8>,
<DateTime '20130104T11:48:08' at 10392c320>,
{'_ts': '1357300088007920',
'cc': '',
'changetime': <DateTime '20130104T11:48:08' at 10392c368>,
'component': 'component1',
'description': '',
'keywords': '',
'milestone': 'milestone1',
'owner': '',
'priority': 'major',
'reporter': 'admin',
'resolution': '',
'status': 'new',
'summary': 'stackoverflow test',
'time': <DateTime '20130104T11:48:08' at 10392c3b0>,
'type': 'defect',
'version': ''}]
这通常总是与身份验证或权限相关,因此要验证 RPC 插件和查询是否有效,您可以临时为 user 分配权限,XML_RPC
并改用此服务器代理(从 URL 中删除和):TICKET_VIEW
anonymous
foo:bar@
/login
server = xmlrpclib.ServerProxy('http://127.0.0.1:8000/trac/rpc')