Fix PEP8 issues
[integration/test.git] / csit / libraries / controller / DnbCommons.robot
1 *** Settings ***
2 Documentation     DOMNotificationBroker testing: Common keywords
3 ...
4 ...               Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
5 ...
6 ...               This program and the accompanying materials are made available under the
7 ...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 ...               and is available at http://www.eclipse.org/legal/epl-v10.html
9 Library           ${CURDIR}/../MdsalLowlevelPy.py
10 Resource          ${CURDIR}/../MdsalLowlevel.robot
11
12 *** Variables ***
13 ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}    ${5000}
14 ${DNB_PUBLISHER_LISTENER_PREFIX}    working-pair-
15 ${DNB_TESTED_MEMBER_INDEX}    1
16
17 *** Keywords ***
18 Dom_Notification_Broker_Test_Templ
19     [Arguments]    ${total_notification_rate}    ${test_duration_in_seconds}
20     [Documentation]    Test case template. Input parameter ${total_notification_rate} determines, how many publisher/subscriber
21     ...    pais take part in the test case. For every ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} one pair is created.
22     ...    The test case itself firstly subscribe listeners, then run publishers and at the end unsubscribe listeners
23     ...    and check achieved rates.
24     BuiltIn.Log    Overall requested rate: ${total_notification_rate}, test duration: ${test_duration_in_seconds} seconds.
25     ${count} =    BuiltIn.Set_variable    ${0}
26     : FOR    ${suffix}    IN RANGE    ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}    ${total_notification_rate}+1    ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
27     \    ${count} =    BuiltIn.Evaluate    ${count}+1
28     \    MdsalLowlevel.Subscribe_Ynl    ${DNB_TESTED_MEMBER_INDEX}    ${DNB_PUBLISHER_LISTENER_PREFIX}${count}
29     ${count} =    BuiltIn.Convert_To_Integer    ${count}
30     MdsalLowlevelPy.Publish_Notifications    ${ODL_SYSTEM_${DNB_TESTED_MEMBER_INDEX}_IP}    ${DNB_PUBLISHER_LISTENER_PREFIX}    ${test_duration_in_seconds}    ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}    nrpairs=${count}
31     ${sum_local_number}    BuiltIn.Set_Variable    ${0}
32     ${low_limit_pair_rate} =    BuiltIn.Evaluate    0.9*${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
33     ${high_limit_pair_rate} =    BuiltIn.Evaluate    1.1*${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
34     : FOR    ${index}    IN RANGE    1    ${count}+1
35     \    ${all_not}    ${id_not}    ${err_not}    ${local_number} =    MdsalLowlevel.Unsubscribe_Ynl    ${DNB_TESTED_MEMBER_INDEX}
36     \    ...    ${DNB_PUBLISHER_LISTENER_PREFIX}${index}
37     \    BuiltIn.Should_Be_Equal_As_Numbers    ${err_not}    ${0}
38     \    BuiltIn.Should_Not_Be_Equal_As_Numbers    ${local_number}    ${0}
39     \    BuiltIn.Should_Be_Equal_As_Numbers    ${id_not}    ${local_number}
40     \    ${rate} =    BuiltIn.Evaluate    ${local_number}/${test_duration_in_seconds}
41     \    BuiltIn.Should_Be_True    ${rate} > ${low_limit_pair_rate}
42     \    BuiltIn.Should_Be_True    ${rate} < ${high_limit_pair_rate}
43     \    ${sum_local_number} =    BuiltIn.Evaluate    ${sum_local_number}+${local_number}
44     ${final_rate} =    BuiltIn.Evaluate    ${sum_local_number}/${test_duration_in_seconds}
45     ${low_limit_final_rate} =    BuiltIn.Evaluate    0.9*${total_notification_rate}
46     ${high_limit_final_rate} =    BuiltIn.Evaluate    1.1*${total_notification_rate}
47     BuiltIn.Should_Be_True    ${final_rate} > ${low_limit_final_rate}
48     BuiltIn.Should_Be_True    ${final_rate} < ${high_limit_final_rate}