diff options
author | spisarski <s.pisarski@cablelabs.com> | 2017-02-15 09:13:54 -0700 |
---|---|---|
committer | spisarski <s.pisarski@cablelabs.com> | 2017-02-15 09:15:34 -0700 |
commit | 57777f3df521553a06cd01a3861b415d2905ceca (patch) | |
tree | f3b3be457baec7b5231309989aa3ffa9658cd25d /docs/IntegrationTests.md | |
parent | 73ef791a1cde68e0d8d69cddf63534fbb90f3e2d (diff) |
Initial patch with all code from CableLabs repository.
Change-Id: I70a2778718c5e7f21fd14e4ad28c9269d3761cc7
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'docs/IntegrationTests.md')
-rw-r--r-- | docs/IntegrationTests.md | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/docs/IntegrationTests.md b/docs/IntegrationTests.md new file mode 100644 index 0000000..0433e5a --- /dev/null +++ b/docs/IntegrationTests.md @@ -0,0 +1,123 @@ +# SNAPS OpenStack Integration Testing + +These tests are ones designed to be run within their own dynamically created project along with a newly generated user +account and generally require other OpenStack object creators. + +# The Test Classes + +## create_security_group_tests.py - CreateSecurityGroupTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_group_without_rules|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup class can create a security group without any rules| +|test_create_delete_group|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup class clean() method will not raise an exception should the group be deleted by some other process| +|test_create_group_with_one_simple_rule|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup class can create a security group with a single rule| +|test_create_group_with_several_rules|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup class can create a security group with several rules| +|test_add_rule|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup#add_rule() method properly creates and associates the new rule| +|test_remove_rule_by_id|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup#remove_rule() method properly deletes and disassociates the old rule via its ID| +|test_remove_rule_by_setting|Keystone 2 & 3 Neutron 2|Ensures the OpenStackSecurityGroup#remove_rule() method properly deletes and disassociates the old rule via its setting object| + +## create_image_tests.py - CreateImageSuccessTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_image_clean_url|Glance 1|Ensures the OpenStackImage class can create an image from a download URL location| +|test_create_image_clean_file|Glance 1|Ensures the OpenStackImage class can create an image from a locally sourced image file| +|test_create_delete_image|Glance 1|Ensures the OpenStackImage.clean() method deletes an image and does not raise an exception on subsequent calls to the clean() method| +|test_create_same_image|Glance 1|Ensures the OpenStackImage.create() method does not create another image when one already exists with the same name| + +## create_image_tests.py - CreateImageNegativeTests +| Test Name | Glance API Version | Description | +|--- |:-: |--- | +|test_none_image_name|1|Ensures OpenStackImage.create() results in an Exception being raised when the ImageSettings.name attribute has not been set| +|test_bad_image_url|1|Ensures OpenStackImage.create() results in an Exception being raised when the download URL is invalid| +|test_bad_image_file|1|Ensures OpenStackImage.create() results in an Exception being raised when the image file does not exist| +|test_none_proj_name|1|Ensures OpenStackImage.create() results in an Exception being raised when credentials project name is None| +|test_none_auth_url|1|Ensures OpenStackImage.create() results in an Exception being raised when credentials URL is None| +|test_none_password|1|Ensures OpenStackImage.create() results in an Exception being raised when credentials password is None| +|test_none_user|1|Ensures OpenStackImage.create() results in an Exception being raised when credentials user is None| + +## create_keypairs_tests.py - CreateKeypairsTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_keypair_only|Nova 2|Ensures that a keypair object can be created simply by only configuring a name| +|test_create_delete_keypair|Nova 2|Ensures that a keypair object is deleted via OpenStackKeypair.clean() and subsequent calls do not result in exceptions| +|test_create_keypair_save_pub_only|Nova 2|Ensures that a keypair object can be created when the only the public key is cached to disk| +|test_create_keypair_save_both|Nova 2|Ensures that a keypair object can be created when both the public and private keys are cached to disk| +|test_create_keypair_from_file|Nova 2|Ensures that a keypair object can be created with an existing public key file| + +## create_network_tests.py - CreateNetworkSuccessTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_network_without_router|Neutron 2|Ensures that a network can be created via the OpenStackNetwork class without any routers| +|test_create_delete_network|Neutron 2|Ensures that a router can be deleted via the OpenStackNetwork.clean() method| +|test_create_network_with_router|Neutron 2|Ensures that a network can be created via the OpenStackNetwork class with a router| +|test_create_networks_same_name|Neutron 2|Ensures that the OpenStackNetwork.create() method will not create a network with the same name| + +## create_router_tests.py - CreateRouterSuccessTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_router_vanilla|Neutron 2|Ensures that a router can be created via the OpenStackRouter class with minimal settings| +|test_create_delete_router|Neutron 2|Ensures that a router can be deleted via the OpenStackRouter.clean() method| +|test_create_router_admin_state_false|Neutron 2|Ensures that a router can created with admin_state_up = False| +|test_create_router_admin_state_True|Neutron 2|Ensures that a router can created with admin_state_up = True| +|test_create_router_private_network|Neutron 2|Ensures that a router port can be created against a private network| +|test_create_router_external_network|Neutron 2|Ensures that a router can be created that is connected to both external and private internal networks| + +## create_router_tests.py - CreateRouterNegativeTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_router_noname|Neutron 2|Ensures that an exception is raised when attempting to create a router without a name| +|test_create_router_invalid_gateway_name|Neutron 2|Ensures that an exception is raised when attempting to create a router to an external network that does not exist| + +## create_instance_tests.py - CreateInstanceSimpleTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_create_delete_instance|Nova and Neutron 2|Ensures that the OpenStackVmInstance.clean() method deletes the instance| + +## create_instance_tests.py - SimpleHealthCheck +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_check_vm_ip_dhcp|Nova and Neutron 2|Tests the creation of an OpenStack instance with a single port and it's assigned IP address| + +## create_instance_tests.py - CreateInstanceSingleNetworkTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_single_port_static|Nova and Neutron 2|Ensures that an instance with a single port/NIC with a static IP can be created| +|test_ssh_client_fip_before_active|Nova and Neutron 2|Ensures that an instance can be reached over SSH when the floating IP is assigned prior to the VM becoming ACTIVE| +|test_ssh_client_fip_after_active|Nova and Neutron 2|Ensures that an instance can be reached over SSH when the floating IP is assigned after to the VM becoming ACTIVE| + +## create_instance_tests.py - CreateInstancePortManipulationTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_set_custom_valid_ip_one_subnet|Nova and Neutron 2|Ensures that an instance's can have a valid static IP is properly assigned| +|test_set_custom_invalid_ip_one_subnet|Nova and Neutron 2|Ensures that an instance's port with an invalid static IP raises an exception| +|test_set_custom_valid_mac|Nova and Neutron 2|Ensures that an instance's port can have a valid MAC address properly assigned| +|test_set_custom_invalid_mac|Nova and Neutron 2|Ensures that an instance's port with an invalid MAC address raises and exception| +|test_set_custom_mac_and_ip|Nova and Neutron 2|Ensures that an instance's port with a valid static IP and MAC are properly assigned| +|test_set_allowed_address_pairs|Nova and Neutron 2|Ensures the configured allowed_address_pairs is properly set on a VMs port| +|test_set_allowed_address_pairs_bad_mac|Nova and Neutron 2|Ensures the port cannot be created when a bad MAC address format is used in the allowed_address_pairs port attribute| +|test_set_allowed_address_pairs_bad_ip|Nova and Neutron 2|Ensures the port cannot be created when a bad IP address format is used in the allowed_address_pairs port attribute| + +## create_instance_tests.py - CreateInstanceOnComputeHost +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_deploy_vm_to_each_compute_node|Nova and Neutron 2|Tests to ensure that one can fire up an instance on each active compute node| + +## create_instance_tests.py - CreateInstancePubPrivNetTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_dual_ports_dhcp|Nova and Neutron 2|Ensures that a VM with two ports/NICs can have its second NIC configured via SSH/Ansible after startup| + +## create_instance_tests.py - InstanceSecurityGroupTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_add_security_group|Nova and Neutron 2|Ensures that a VM instance can have security group added to it while its running| +|test_add_invalid_security_group|Nova and Neutron 2|Ensures that a VM instance does not accept the addition of a security group that no longer exists| +|test_remove_security_group|Nova and Neutron 2|Ensures that a VM instance accepts the removal of a security group| +|test_remove_security_group_never_added|Nova and Neutron 2|Ensures that a VM instance does not accept the removal of a security group that was never added in the first place| +|test_add_same_security_group|Nova and Neutron 2|Ensures that a VM instance does not add a security group that has already been added to the instance| + +## ansible_utils_tests.py - AnsibleProvisioningTests +| Test Name | API Versions | Description | +|--- |:-: |--- | +|test_apply_simple_playbook|Nova and Neutron 2|Ensures that an instance assigned with a floating IP will apply a simple Ansible playbook| +|test_apply_template_playbook|Nova and Neutron 2|Ensures that an instance assigned with a floating IP will apply a Ansible playbook containing Jinga2 substitution values| |