使用Robot Framework,Python-ldap添加条目失败

时间:2017-03-02 17:07:47

标签: python robotframework python-ldap

我正在尝试使用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函数中的某个地方失败了。

1 个答案:

答案 0 :(得分:0)

python-ldap曾经遇到过Unicode字符串的问题 - 我很久没有使用它了,不确定它是否已在最新版本中修复。

查看错误,这看起来像这里的情况 - 只需将任何unicode参数转换为字符串,例如使用RF Convert To String或python的str()

编辑:例如,投射列表成员:

 ${subscriber}     Convert To String    subscriber
 ${ObjList}    Create List    ${subs}

类似于字典值。