diff --git a/tempest/api/compute/admin/test_aggregates_negative.py b/tempest/api/compute/admin/test_aggregates_negative.py index a6e0efa5bd..d5adfed31a 100644 --- a/tempest/api/compute/admin/test_aggregates_negative.py +++ b/tempest/api/compute/admin/test_aggregates_negative.py @@ -144,6 +144,7 @@ class AggregatesAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('19dd44e1-c435-4ee1-a402-88c4f90b5950') def test_aggregate_add_existent_host(self): + # Adding already existing host to aggregate should fail. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate = self._create_test_aggregate() @@ -172,6 +173,7 @@ class AggregatesAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('95d6a6fa-8da9-4426-84d0-eec0329f2e4d') def test_aggregate_remove_nonexistent_host(self): + # Removing not existing host from aggregate should fail. aggregate = self._create_test_aggregate() self.assertRaises(lib_exc.NotFound, self.client.remove_host, diff --git a/tempest/api/compute/admin/test_hosts.py b/tempest/api/compute/admin/test_hosts.py index c246685a0d..31fe2b531a 100644 --- a/tempest/api/compute/admin/test_hosts.py +++ b/tempest/api/compute/admin/test_hosts.py @@ -29,11 +29,13 @@ class HostsAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('9bfaf98d-e2cb-44b0-a07e-2558b2821e4f') def test_list_hosts(self): + # Listing hosts. hosts = self.client.list_hosts()['hosts'] self.assertGreaterEqual(len(hosts), 2, str(hosts)) @decorators.idempotent_id('5dc06f5b-d887-47a2-bb2a-67762ef3c6de') def test_list_hosts_with_zone(self): + # Listing hosts with specified availability zone self.useFixture(fixtures.LockFixture('availability_zone')) hosts = self.client.list_hosts()['hosts'] host = hosts[0] @@ -43,6 +45,7 @@ class HostsAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('9af3c171-fbf4-4150-a624-22109733c2a6') def test_list_hosts_with_a_blank_zone(self): + # Listing hosts with blank availability zone. # If send the request with a blank zone, the request will be successful # and it will return all the hosts list hosts = self.client.list_hosts(zone='')['hosts'] @@ -50,6 +53,7 @@ class HostsAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('c6ddbadb-c94e-4500-b12f-8ffc43843ff8') def test_list_hosts_with_nonexistent_zone(self): + # Listing hosts with not existing availability zone. # If send the request with a nonexistent zone, the request will be # successful and no hosts will be returned hosts = self.client.list_hosts(zone='xxx')['hosts'] @@ -57,6 +61,7 @@ class HostsAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('38adbb12-aee2-4498-8aec-329c72423aa4') def test_show_host_detail(self): + # Showing host details. hosts = self.client.list_hosts()['hosts'] hosts = [host for host in hosts if host['service'] == 'compute'] diff --git a/tempest/api/compute/admin/test_hosts_negative.py b/tempest/api/compute/admin/test_hosts_negative.py index 8a91ae2754..e8733c8633 100644 --- a/tempest/api/compute/admin/test_hosts_negative.py +++ b/tempest/api/compute/admin/test_hosts_negative.py @@ -39,18 +39,21 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('dd032027-0210-4d9c-860e-69b1b8deed5f') def test_list_hosts_with_non_admin_user(self): + # Non admin user is not allowed to list hosts. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.list_hosts) @decorators.attr(type=['negative']) @decorators.idempotent_id('e75b0a1a-041f-47a1-8b4a-b72a6ff36d3f') def test_show_host_detail_with_nonexistent_hostname(self): + # Showing host detail with not existing hostname should fail. self.assertRaises(lib_exc.NotFound, self.client.show_host, 'nonexistent_hostname') @decorators.attr(type=['negative']) @decorators.idempotent_id('19ebe09c-bfd4-4b7c-81a2-e2e0710f59cc') def test_show_host_detail_with_non_admin_user(self): + # Non admin user is not allowed to show host details. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.show_host, self.hostname) @@ -58,6 +61,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('e40c72b1-0239-4ed6-ba21-81a184df1f7c') def test_update_host_with_non_admin_user(self): + # Non admin user is not allowed to update host. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.update_host, self.hostname, @@ -67,7 +71,8 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('fbe2bf3e-3246-4a95-a59f-94e4e298ec77') def test_update_host_with_invalid_status(self): - # 'status' can only be 'enable' or 'disable' + # Updating host to invalid status should fail, + # 'status' can only be 'enable' or 'disable'. self.assertRaises(lib_exc.BadRequest, self.client.update_host, self.hostname, @@ -77,7 +82,8 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('ab1e230e-5e22-41a9-8699-82b9947915d4') def test_update_host_with_invalid_maintenance_mode(self): - # 'maintenance_mode' can only be 'enable' or 'disable' + # Updating host to invalid maintenance mode should fail, + # 'maintenance_mode' can only be 'enable' or 'disable'. self.assertRaises(lib_exc.BadRequest, self.client.update_host, self.hostname, @@ -87,7 +93,8 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('0cd85f75-6992-4a4a-b1bd-d11e37fd0eee') def test_update_host_without_param(self): - # 'status' or 'maintenance_mode' needed for host update + # Updating host without param should fail, + # 'status' or 'maintenance_mode' is needed for host update. self.assertRaises(lib_exc.BadRequest, self.client.update_host, self.hostname) @@ -95,6 +102,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('23c92146-2100-4d68-b2d6-c7ade970c9c1') def test_update_nonexistent_host(self): + # Updating not existing host should fail. self.assertRaises(lib_exc.NotFound, self.client.update_host, 'nonexistent_hostname', @@ -104,6 +112,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('0d981ac3-4320-4898-b674-82b61fbb60e4') def test_startup_nonexistent_host(self): + # Starting up not existing host should fail. self.assertRaises(lib_exc.NotFound, self.client.startup_host, 'nonexistent_hostname') @@ -111,6 +120,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('9f4ebb7e-b2ae-4e5b-a38f-0fd1bb0ddfca') def test_startup_host_with_non_admin_user(self): + # Non admin user is not allowed to startup host. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.startup_host, self.hostname) @@ -118,6 +128,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('9e637444-29cf-4244-88c8-831ae82c31b6') def test_shutdown_nonexistent_host(self): + # Shutting down not existing host should fail. self.assertRaises(lib_exc.NotFound, self.client.shutdown_host, 'nonexistent_hostname') @@ -125,6 +136,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('a803529c-7e3f-4d3c-a7d6-8e1c203d27f6') def test_shutdown_host_with_non_admin_user(self): + # Non admin user is not allowed to shutdown host. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.shutdown_host, self.hostname) @@ -132,6 +144,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('f86bfd7b-0b13-4849-ae29-0322e83ee58b') def test_reboot_nonexistent_host(self): + # Rebooting not existing host should fail. self.assertRaises(lib_exc.NotFound, self.client.reboot_host, 'nonexistent_hostname') @@ -139,6 +152,7 @@ class HostsAdminNegativeTestJSON(base.BaseV2ComputeAdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('02d79bb9-eb57-4612-abf6-2cb38897d2f8') def test_reboot_host_with_non_admin_user(self): + # Non admin user is not allowed to reboot host. self.assertRaises(lib_exc.Forbidden, self.non_admin_client.reboot_host, self.hostname) diff --git a/tempest/api/compute/admin/test_hypervisor.py b/tempest/api/compute/admin/test_hypervisor.py index 9822c2619c..e45aac5ed5 100644 --- a/tempest/api/compute/admin/test_hypervisor.py +++ b/tempest/api/compute/admin/test_hypervisor.py @@ -134,6 +134,7 @@ class HypervisorAdminUnderV252Test(HypervisorAdminTestBase): @decorators.idempotent_id('d7e1805b-3b14-4a3b-b6fd-50ec6d9f361f') def test_search_hypervisor(self): + # Searching for hypervisors by its name. hypers = self._list_hypervisors() self.assertNotEmpty(hypers, "No hypervisors found.") hypers = self.client.search_hypervisor( diff --git a/tempest/api/compute/admin/test_hypervisor_negative.py b/tempest/api/compute/admin/test_hypervisor_negative.py index 0056376ff3..723b93c79d 100644 --- a/tempest/api/compute/admin/test_hypervisor_negative.py +++ b/tempest/api/compute/admin/test_hypervisor_negative.py @@ -40,8 +40,8 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('c136086a-0f67-4b2b-bc61-8482bd68989f') def test_show_nonexistent_hypervisor(self): + # Showing not existing hypervisor should fail. nonexistent_hypervisor_id = data_utils.rand_uuid() - self.assertRaises( lib_exc.NotFound, self.client.show_hypervisor, @@ -50,6 +50,7 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('51e663d0-6b89-4817-a465-20aca0667d03') def test_show_hypervisor_with_non_admin_user(self): + # Non admin user is not allowed to show hypervisor. hypers = self._list_hypervisors() self.assertNotEmpty(hypers) @@ -61,6 +62,7 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('e2b061bb-13f9-40d8-9d6e-d5bf17595849') def test_get_hypervisor_stats_with_non_admin_user(self): + # Non admin user is not allowed to get hypervisor stats. self.assertRaises( lib_exc.Forbidden, self.non_adm_client.show_hypervisor_statistics) @@ -68,6 +70,7 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('f60aa680-9a3a-4c7d-90e1-fae3a4891303') def test_get_nonexistent_hypervisor_uptime(self): + # Getting uptime of not existing hypervisor should fail. nonexistent_hypervisor_id = data_utils.rand_uuid() self.assertRaises( @@ -78,6 +81,7 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('6c3461f9-c04c-4e2a-bebb-71dc9cb47df2') def test_get_hypervisor_uptime_with_non_admin_user(self): + # Non admin user is not allowed to get hypervisor uptime. hypers = self._list_hypervisors() self.assertNotEmpty(hypers) @@ -97,7 +101,7 @@ class HypervisorAdminNegativeTestJSON(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('dc02db05-e801-4c5f-bc8e-d915290ab345') def test_get_hypervisor_list_details_with_non_admin_user(self): - # List of hypervisor details and available services with non admin user + # Non admin user is not allowed to list hypervisor details. self.assertRaises( lib_exc.Forbidden, self.non_adm_client.list_hypervisors, detail=True) @@ -109,6 +113,7 @@ class HypervisorAdminNegativeUnderV252Test(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('2a0a3938-832e-4859-95bf-1c57c236b924') def test_show_servers_with_non_admin_user(self): + # Non admin user is not allowed to show servers on hypervisor. hypers = self._list_hypervisors() self.assertNotEmpty(hypers) @@ -120,6 +125,7 @@ class HypervisorAdminNegativeUnderV252Test(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('02463d69-0ace-4d33-a4a8-93d7883a2bba') def test_show_servers_with_nonexistent_hypervisor(self): + # Showing servers on not existing hypervisor should fail. nonexistent_hypervisor_id = data_utils.rand_uuid() self.assertRaises( @@ -130,6 +136,7 @@ class HypervisorAdminNegativeUnderV252Test(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('5b6a6c79-5dc1-4fa5-9c58-9c8085948e74') def test_search_hypervisor_with_non_admin_user(self): + # Non admin user is not allowed to search hypervisor. hypers = self._list_hypervisors() self.assertNotEmpty(hypers) @@ -141,6 +148,7 @@ class HypervisorAdminNegativeUnderV252Test(HypervisorAdminNegativeTestBase): @decorators.attr(type=['negative']) @decorators.idempotent_id('19a45cc1-1000-4055-b6d2-28e8b2ec4faa') def test_search_nonexistent_hypervisor(self): + # Searching not existing hypervisor should fail. self.assertRaises( lib_exc.NotFound, self.client.search_hypervisor, diff --git a/tempest/api/compute/admin/test_services.py b/tempest/api/compute/admin/test_services.py index 73e191b801..bf846e58c7 100644 --- a/tempest/api/compute/admin/test_services.py +++ b/tempest/api/compute/admin/test_services.py @@ -28,11 +28,13 @@ class ServicesAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('5be41ef4-53d1-41cc-8839-5c2a48a1b283') def test_list_services(self): + # Listing nova services services = self.client.list_services()['services'] self.assertNotEmpty(services) @decorators.idempotent_id('f345b1ec-bc6e-4c38-a527-3ca2bc00bef5') def test_get_service_by_service_binary_name(self): + # Listing nova services by binary name. binary_name = 'nova-compute' services = self.client.list_services(binary=binary_name)['services'] self.assertNotEmpty(services) @@ -41,6 +43,7 @@ class ServicesAdminTestJSON(base.BaseV2ComputeAdminTest): @decorators.idempotent_id('affb42d5-5b4b-43c8-8b0b-6dca054abcca') def test_get_service_by_host_name(self): + # Listing nova services by host name. services = self.client.list_services()['services'] host_name = services[0]['host'] services_on_host = [service for service in services if diff --git a/tempest/api/compute/servers/test_multiple_create.py b/tempest/api/compute/servers/test_multiple_create.py index e176251a89..dcadacefc5 100644 --- a/tempest/api/compute/servers/test_multiple_create.py +++ b/tempest/api/compute/servers/test_multiple_create.py @@ -23,6 +23,7 @@ class MultipleCreateTestJSON(base.BaseV2ComputeTest): @decorators.idempotent_id('61e03386-89c3-449c-9bb1-a06f423fd9d1') def test_multiple_create(self): + # Creating server with min_count=2, 2 servers will be created. tenant_network = self.get_tenant_network() body, servers = compute.create_test_server( self.os_primary, @@ -39,6 +40,8 @@ class MultipleCreateTestJSON(base.BaseV2ComputeTest): @decorators.idempotent_id('864777fb-2f1e-44e3-b5b9-3eb6fa84f2f7') def test_multiple_create_with_reservation_return(self): + # Creating multiple servers with return_reservation_id=True, + # reservation_id will be returned. body = self.create_test_server(wait_until='ACTIVE', min_count=1, max_count=2, diff --git a/tempest/api/compute/servers/test_multiple_create_negative.py b/tempest/api/compute/servers/test_multiple_create_negative.py index 422510f756..6bdf83bb69 100644 --- a/tempest/api/compute/servers/test_multiple_create_negative.py +++ b/tempest/api/compute/servers/test_multiple_create_negative.py @@ -23,6 +23,7 @@ class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('daf29d8d-e928-4a01-9a8c-b129603f3fc0') def test_min_count_less_than_one(self): + # Creating server with min_count=0 should fail. invalid_min_count = 0 self.assertRaises(lib_exc.BadRequest, self.create_test_server, min_count=invalid_min_count) @@ -30,6 +31,7 @@ class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('999aa722-d624-4423-b813-0d1ac9884d7a') def test_min_count_non_integer(self): + # Creating server with non-integer min_count should fail. invalid_min_count = 2.5 self.assertRaises(lib_exc.BadRequest, self.create_test_server, min_count=invalid_min_count) @@ -37,6 +39,7 @@ class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('a6f9c2ab-e060-4b82-b23c-4532cb9390ff') def test_max_count_less_than_one(self): + # Creating server with max_count < 1 shoudld fail. invalid_max_count = 0 self.assertRaises(lib_exc.BadRequest, self.create_test_server, max_count=invalid_max_count) @@ -44,6 +47,7 @@ class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('9c5698d1-d7af-4c80-b971-9d403135eea2') def test_max_count_non_integer(self): + # Creating server with non-integer max_count should fail. invalid_max_count = 2.5 self.assertRaises(lib_exc.BadRequest, self.create_test_server, max_count=invalid_max_count) @@ -51,6 +55,7 @@ class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('476da616-f1ef-4271-a9b1-b9fc87727cdf') def test_max_count_less_than_min_count(self): + # Creating server with max_count less than min_count should fail. min_count = 3 max_count = 2 self.assertRaises(lib_exc.BadRequest, self.create_test_server,