Test case description for BGPVPN Tempest API tests 21/51621/6
authorGeorg Kunz <georg.kunz@ericsson.com>
Sat, 3 Feb 2018 21:15:40 +0000 (22:15 +0100)
committerGeorg Kunz <georg.kunz@ericsson.com>
Mon, 16 Jul 2018 11:21:50 +0000 (11:21 +0000)
Adding test case descriptions for the BGPVPN API tests which are
implemented as Tempest plugin in the networking-bgpvpn repository. These
tests have already been integrated for Euphrates into Functest test and
are hence a candidate for inclusion in the test scope of the OVP
Euphrates release as extension of the existing SDNVPN test cases.

JIRA: DOVETAIL-598

Change-Id: Id8578ed1e198ddbde967793737c69a5940c22475
Signed-off-by: Georg Kunz <georg.kunz@ericsson.com>
docs/testing/user/testspecification/vpn/index.rst

index 5cf92f1..f677843 100644 (file)
@@ -530,3 +530,199 @@ Post conditions
 ---------------
 
 N/A
+
+
+
+------------------------------------
+Test Case 5 - Tempest API CRUD Tests
+------------------------------------
+
+Short Name
+----------
+
+dovetail.tempest.bgpvpn
+
+
+Use case specification
+----------------------
+
+This test case combines multiple CRUD (Create, Read, Update, Delete) tests for
+the objects defined by the BGPVPN API extension of Neutron.
+
+These tests are implemented in the upstream `networking-bgpvpn project repository
+<https://github.com/openstack/networking-bgpvpn>`_ as a Tempest plugin.
+
+
+Test preconditions
+------------------
+
+The VIM is operational and the networking-bgpvpn service plugin for Neutron is
+correctly configured and loaded. At least one compute node is available.
+
+
+Basic test flow execution description and pass/fail criteria
+------------------------------------------------------------
+
+List of test cases
+
+* networking_bgpvpn_tempest.tests.api.test_create_bgpvpn
+* networking_bgpvpn_tempest.tests.api.test_create_bgpvpn_as_non_admin_fail
+* networking_bgpvpn_tempest.tests.api.test_delete_bgpvpn_as_non_admin_fail
+* networking_bgpvpn_tempest.tests.api.test_show_bgpvpn_as_non_owner_fail
+* networking_bgpvpn_tempest.tests.api.test_list_bgpvpn_as_non_owner_fail
+* networking_bgpvpn_tempest.tests.api.test_show_netassoc_as_non_owner_fail
+* networking_bgpvpn_tempest.tests.api.test_list_netassoc_as_non_owner_fail
+* networking_bgpvpn_tempest.tests.api.test_associate_disassociate_network
+* networking_bgpvpn_tempest.tests.api.test_update_route_target_non_admin_fail
+* networking_bgpvpn_tempest.tests.api.test_create_bgpvpn_with_invalid_routetargets
+* networking_bgpvpn_tempest.tests.api.test_update_bgpvpn_invalid_routetargets
+* networking_bgpvpn_tempest.tests.api.test_associate_invalid_network
+* networking_bgpvpn_tempest.tests.api.test_disassociate_invalid_network
+* networking_bgpvpn_tempest.tests.api.test_associate_disassociate_router
+* networking_bgpvpn_tempest.tests.api.test_attach_associated_subnet_to_associated_router
+
+The tests include both positive tests and negative tests. The latter are
+identified with the suffix "_fail" in their name.
+
+
+Test execution
+''''''''''''''
+
+The tests are executed sequentially and a separate pass/fail result is recorded
+per test.
+
+In general, every test case performs the API operations indicated in its name
+and asserts that the action succeeds (positive test) or a specific exception
+is triggered (negative test). The following describes the test execution
+per test in further detail.
+
+
+networking_bgpvpn_tempest.tests.api.test_create_bgpvpn
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN as an admin.
+* **Test assertion**: The API call succeeds.
+
+
+networking_bgpvpn_tempest.tests.api.test_create_bgpvpn_as_non_admin_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Attempt to create a BGPVPN as non-admin.
+* **Test assertion**: Creating a BGPVPN as non-admin fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_delete_bgpvpn_as_non_admin_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin.
+* Attempt to delete vpn1 as non-admin.
+* **Test assertion**: The deletion of vpn1 as non-admin fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_show_bgpvpn_as_non_owner_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin in project1.
+* **Test assertion**: Attempting to retrieve detailed properties of vpn1
+  in project2 fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_list_bgpvpn_as_non_owner_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin in project1.
+* Retrieve a list of all BGPVPNs in project2.
+* **Test assertion**: The list of BGPVPNs retrieved in project2 does not
+  include vpn1.
+
+
+networking_bgpvpn_tempest.tests.api.test_show_netassoc_as_non_owner_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin in project1.
+* Associate vpn1 with a Neutron network in project1
+* **Test assertion**: Retrieving detailed properties of the network association
+  fails in project2.
+
+
+networking_bgpvpn_tempest.tests.api.test_list_netassoc_as_non_owner_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin in project1.
+* Create network association net-assoc1 with vpn1 and Neutron network net1
+  in project1.
+* Retrieve a list of all network associations in project2.
+* **Test assertion**: The retrieved list of network associations does not
+  include network association net-assoc1.
+
+
+networking_bgpvpn_tempest.tests.api.test_associate_disassociate_network
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin.
+* Associate vpn1 with a Neutron network net1.
+* **Test assertion**: The metadata of vpn1 includes the UUID of net1.
+* Diassociate vpn1 from the Neutron network.
+* **Test assertion**: The metadata of vpn1 does not include the UUID of net1.
+
+
+networking_bgpvpn_tempest.tests.api.test_update_route_target_non_admin_fail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin with specific route targets.
+* Attempt to update vpn1 with different route targets as non-admin.
+* **Test assertion**: The update fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_create_bgpvpn_with_invalid_routetargets
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Attempt to create a BGPVPN as admin with invalid route targets.
+* **Test assertion**: The creation of the BGPVPN fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_update_bgpvpn_invalid_routetargets
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin with empty route targets.
+* Attempt to update vpn1 with invalid route targets.
+* **Test assertion**: The update of the route targets fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_associate_invalid_network
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin.
+* Attempt to associate vpn1 with a non-existing Neutron network.
+* **Test assertion**: Creating the network association fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_disassociate_invalid_network
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin.
+* Create network association net-assoc1 with vpn1 and Neutron network net1.
+* Attempt to delete net-assoc1 with an invalid network UUID.
+* **Test assertion**: The deletion of the net-assoc fails.
+
+
+networking_bgpvpn_tempest.tests.api.test_associate_disassociate_router
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create a BGPVPN vpn1 as admin.
+* Associate vpn1 with a Neutron router router1.
+* **Test assertion**: The metadata of vpn1 includes the UUID of router1.
+* Disassociate router1 from vpn1.
+* **Test assertion**: The metadata of vpn1 does not include the UUID of router1.
+
+
+networking_bgpvpn_tempest.tests.api.test_attach_associated_subnet_to_associated_router
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Create BGPVPN vpn1 as admin.
+* Associate vpn1 with Neutron network net1.
+* Create BGPVPN vpn2
+* Associate vpn2 with Neutron router router1.
+* Attempt to add the subnet of net1 to router1
+* **Test assertion**: The association fails.
+
+
+
+Pass / fail criteria
+''''''''''''''''''''
+
+This test validates that all supported CRUD operations (create, read, update,
+delete) can be applied to the objects of the Neutron BGPVPN extension.  In
+order to pass this test, all test assertions listed in the test execution above
+need to pass.
+
+
+Post conditions
+---------------
+
+N/A