*** Settings *** Documentation Basic library verification suite, handling cars/people in 1-node setup. ... ... Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. ... ... This program and the accompanying materials are made available under the ... terms of the Eclipse Public License v1.0 which accompanies this distribution, ... and is available at http://www.eclipse.org/legal/epl-v10.html ... ... This is a lightweight and stripped-down functional analogue of performance suite. ... Intention is to use this as a verify suite for changes in TemplatedRequests resource. Variables ${CURDIR}/../../../variables/Variables.py Resource ${CURDIR}/../../../libraries/SetupUtils.robot Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot Suite Setup Start_Suite Test Setup SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing Test Teardown SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed *** Variables *** ${VAR_BASE} ${CURDIR}/../../../variables/carpeople/libtest ${BULK_SIZE} 2 ${TIMEOUT_BUG_4220} 60s *** Test Cases *** Wait_For_Rpcs [Documentation] Issue (invalid) RPC requests until 501 goes away (or timeout expires). ... See https://bugs.opendaylight.org/show_bug.cgi?id=4220 BuiltIn.Wait_Until_Keyword_Succeeds ${TIMEOUT_BUG_4220} 5s Check_Rpc_Readiness Add_And_Verify_Person [Documentation] Add a person entry, verify it is seen in the datastore. TemplatedRequests.Put_As_Json_Templated folder=${VAR_BASE}/person TemplatedRequests.Get_As_Json_Templated folder=${VAR_BASE}/person verify=True Add_And_Verify_Car [Documentation] Add a car entry, verify it is seen in the datastore. TemplatedRequests.Put_As_Json_Templated folder=${VAR_BASE}/car TemplatedRequests.Get_As_Json_Templated folder=${VAR_BASE}/car verify=True Purchase_And_Verify_Car [Documentation] Post RPC to buy a car. TemplatedRequests.Post_As_Json_Templated folder=${VAR_BASE}/purchase TemplatedRequests.Get_As_Json_Templated folder=${VAR_BASE}/car_person verify=True Delete_CarPerson [Documentation] Remove the car-people entry from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/car_person # TODO: Add specific error check on Get attempt. Delete_Car [Documentation] Remove the car entry from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/car # TODO: Add specific error check on Get attempt. Delete_Person [Documentation] Remove the person entry from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/person # TODO: Add specific error check on Get attempt. Add_And_Verify_People [Documentation] Create container with several people, verify it is seen in the datastore.. TemplatedRequests.Post_As_Json_Templated folder=${VAR_BASE}/people iterations=${BULK_SIZE} TemplatedRequests.Get_As_Json_Templated folder=${VAR_BASE}/people verify=True iterations=${BULK_SIZE} Add_And_Verify_Cars [Documentation] Create container with several cars, verify it is seen in the datastore. TemplatedRequests.Post_As_Json_Templated folder=${VAR_BASE}/cars iterations=${BULK_SIZE} TemplatedRequests.Get_As_Json_Templated folder=${VAR_BASE}/cars verify=True iterations=${BULK_SIZE} # TODO: Add cases with purchase loop. Delete_CarsPeople [Documentation] Remove cars-people container from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/cars_people # TODO: Add specific error check on Get attempt. Delete_Cars [Documentation] Remove cars container from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/cars # TODO: Add specific error check on Get attempt. Delete_People [Documentation] Remove people container from the datastore. TemplatedRequests.Delete_Templated folder=${VAR_BASE}/people # TODO: Add specific error check on Get attempt. *** Keywords *** Start_Suite [Documentation] Suite setup keyword SetupUtils.Setup_Utils_For_Setup_And_Teardown TemplatedRequests.Create_Default_Session Check_Rpc_Readiness [Documentation] Issue invalid RPC requests and assert appropriate http status code # So far only buy-car is checked, but other RPCs such as add-car may be added later. ${status} ${message} = BuiltIn.Run_Keyword_And_Ignore_Error ... TemplatedRequests.Post_As_Json_To_Uri ... uri=restconf/operations/car-purchase:buy-car ... data={"input":{}} # TODO: Create template directory for this? BuiltIn.Should_Not_Contain ${message} '50