我正在尝试使用python添加一个条目并在Robot TC中调用它。我的python代码是:
#!/usr/bin/env python
import ldap
import ldap.modlist as modlist
def LdapAddObject(l,dn,attributeDict):
attrs={}
for key in sorted(attributeDict.keys()):
Attrib=getattr(attributeDict,key)
attrs[key]=Attrib
print attrs
ldif=modlist.addModlist(attrs)
l.add_s(dn,ldif)
l.unbind_s()
我的机器人代码是:
*** Settings ***
Documentation This testsuite checks the LDAP functionalities of DB nodes.
*** Test Cases ***
Perform Ldap Operations
${ObjList} Create List subscriber
&{DN-Dict} Create Dictionary objectclass=${ObjList} uid='2620105000000'
${ldapObj} ldapopen ${DB_1_EXT_APP_IP}
LdapAddObject ${ldapObj} uid=262010500,ds=hello,o=DEF,dc=LDB ${DN-Dict}
它让我错误地说:
TypeError: ('expected a string in the list', u'subscriber')
它确实在add_s函数中的某个地方失败了。
答案 0 :(得分:0)
python-ldap曾经遇到过Unicode字符串的问题 - 我很久没有使用它了,不确定它是否已在最新版本中修复。
查看错误,这看起来像这里的情况 - 只需将任何unicode参数转换为字符串,例如使用RF Convert To String
或python的str()
编辑:例如,投射列表成员:
${subscriber} Convert To String subscriber
${ObjList} Create List ${subs}
类似于字典值。