以下のように私は、LDAPオブジェクトを検索するPythonの関数を作成しました:だから、私はそうのようにロボットのテストケースでは、今このキーワードを呼び出すPython関数でldapオブジェクトを整数に変換するにはどうすればよいですか?
def my_search(l, baseDN, searchScope=ldap.SCOPE_ONELEVEL, searchFilter="objectClass=*", retrieveAttributes=None):
logger.console("Reachedhere")
try:
logger.console("Reachedhereinsidetry\n")
ldap_result_id = l.search_s(baseDN,searchScope,searchFilter,retrieveAttributes)
logger.console("Gotresult\n")
:
*** Settings ***
Documentation This testsuite checks the LDAP functionalities of DB nodes.
Resource ../../COMMON/Libraries/SDL-DB-COMMON-LIB.txt
Library ../../COMMON/Libraries/pythonldap.py
*** Test Cases ***
Perform Ldap Operations
${ldapObj} ldapopen ${DB_1_EXT_APP_IP}
Log to Console ${ldapObj}
${SearchReturn} my_search ${ldapObj} "uid=5000000,ds=CRIBER,o=D,dc=CN" ldap.SCOPE_ONELEVEL "objectClass=*" None
私はこのTCを実行すると、それをエラーが「ldap_result_id = l.search_s(ベースDN、searchScope、searchFilterに間違いなくある
TypeError: an integer is required
、取得:私はそうのような検索でエラーがスローされます私は以前のコメントを印刷することができます。
ここで問題は何ですか?
ここで問題となるのは、ロボットから渡すことができない範囲のレベルです。私は変更されました:
def my_search(l, baseDN, searchScopeLevel, searchFilter="objectClass=*", retrieveAttributes=None):
try:
if searchScopeLevel == 'ONE':
searchScope=ldap.SCOPE_ONELEVEL
elif searchScopeLevel == 'BASE':
searchScope=ldap.SCOPE_BASE
elif searchScopeLevel == 'SUB':
searchScope=ldap.SCOPE_SUBTREE
ldap_result_id = l.search(baseDN,searchScope,searchFilter,retrieveAttributes)
ロボットTCの変更:
*** Test Cases ***
Perform Ldap Operations
${ldapObj} ldapopen ${DB_1_EXT_APP_IP}
${SearchReturn} my_search ${ldapObj} uid=205000000,ds=CRIBER,o=DEFT,dc=C ONE objectClass=*
そして、問題が解決されます。 :)
少なくとも、my_searchキーワードのどこにエラーを推測するのか、いくつかの詳細を教えてください。ここでは文字の制限があるため、明白な問題で答えを出すだろうが、このレベルの細部は野生のものだ。 – Todor