在一个函数调用中获得了多个参数,但在另一个函数调用中却没有

问题描述

我正在研究Robot Framework,我的基本方法之一是用python编写的,用于构建具有n列和多个where条件的SQL查询。该功能看起来像

from pypika import Query,Table,Field
def get_query_with_filter_conditions(table_name,*column,**where):
    table_name_with_no_lock = table_name + ' with (nolock)'
    table = Table(table_name_with_no_lock)
    where_condition = get_where_condition(**where)
    sql_query = Query.from_(table).select(
        *column
    ).where(
        Field(where_condition)
    )
    return str(sql_query).replace('"','')

我在我的机器人关键字中将此方法称为:

Get Query With Filter Conditions    ${tableName}    ${column}    &{tableFilter}

此函数在另外两个关键字中调用。对于一个它工作正常。对于另一个,它总是抛出错误

关键字“ queryBuilderUtility。使用过滤条件获取查询”为参数“ table_name”获得了多个值。

效果很好的关键字如下:

Verify the ${element} in ${grid} is fetched from ${column} column in ${tableName} table from DB
    [Documentation]    Verifies Monetary values in the View Sale Grid
    ${feature}=    Get Variable Value    ${FEATURE_NAME}
    ${filterValue}=    Get Variable value    ${FILTER_VALUE}
    ${queryFilter}=    Get the Test Data    valid    ${filterValue}    ${feature}
    &{tableFilter}=    Create Dictionary
    Set To Dictionary    ${tableFilter}    ${filterValue}=${queryFilter}
    Set To Dictionary    ${tableFilter}    form_of_payment_type=${element}
    ${tableName}=    Catenate    SEPARATOR=.    SmartPRASales    ${tableName}
    ${query}=    Get query with Filter Conditions    ${tableName}    ${column}    &{tableFilter}
    Log    ${query}
    @{queryResult}=    CommonPage.Get a Column values from DB    ${query}

总是抛出错误的函数如下:

Verify ${element} drop down contains all values from ${column} column in ${tableName} table
    [Documentation]    To verify the drop down has all values from DB
    ${feature}=    Get Variable Value    ${FEATURE_NAME}
    ${filterElement}=    Run Keyword If    '${element}'=='batch_type'    Set Variable    transaction_type
    ...    ELSE IF    '${element}'=='channel'    Set Variable    agency_type
    ...    ELSE    Set Variable    ${element}
    &{tableFilter}=    Create Dictionary
    Set To Dictionary    ${tableFilter}    table_name=GENERAL
    Set To Dictionary    ${tableFilter}    column_name=${filterElement}
    Set To Dictionary    ${tableFilter}    client_id=QR
    Log    ${tableFilter}
    Log    ${tableName}
    Log    ${column}
    ${tableName}=    Catenate    SEPARATOR=.    SmartPRAMaster    ${tableName}
    ${query}=    Get Query With Filter Conditions    ${tableName}    ${column}    &{tableFilter}
    Log    ${query}
    @{expectedvalues}=    CommonPage.Get a Column values from DB    ${query}

有人可以帮助我纠正我在这里犯的错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)