Search code examples
jsonapirobotframework

Robot Framework bypass HTTPError: 400 Client Error: Bad Request


I have a request which tend to upload a file, if a file with the same name already exists it throws a message that the file already exists. This can be considered as expected result and even though the error I would the test to pass as it is. This is the code I am using:

    Create Session    mysession    ${test_env}
    &{headers}  Create Dictionary  Content-Type=application/json; charset=utf-8     Authorization=${token}
    ${json}=    Catenate    {   "FileName": "File.txt",   "Content": "PD94bWwg..",  "UserId": "email.com"  }
    ${value}    Set Variable    2
    ${value}    Convert To Integer    ${value}
    ${json}=    Evaluate    json.loads('''${json}''')    json
    #Set To Dictionary    ${json["FileName"]}
    ${json}=    Evaluate    json.dumps(${json})    json
    ${resp}    POST     url=${test_env}/api/nt   data=${json}    headers=${headers}
    ${log}=     Log To Console    ${resp.status_code}   400
    Log To Console    ${resp.content}
    Status Should Be    expected_status=any

The test stops at the POST request and does not want to read the expected_status=any and consider the test as pass. I would appreciate any hints on how to make it pass.


Solution

  • Below code will verify the 400 error and will continue further execution

    Run Keyword And Expect Error    HTTPError: 400*     POST     url=${test_env}/api/nt   data=${json}    headers=${headers}