mirror of
				https://github.com/Telecominfraproject/wlan-testing.git
				synced 2025-10-29 18:12:34 +00:00 
			
		
		
		
	 db2e9fa208
			
		
	
	db2e9fa208
	
	
	
		
			
			* Added 4 Security Services Rest API Tests cases Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added test cases for security_profiles, Authenticator QR Code Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added CRUD User and CRUD subuser test cases Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Removed print Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added headers in PUT method Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Removed systemConfiguration API test case Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> * Added ow_sanity_lf marker only in sanity test cases Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com> --------- Signed-off-by: jitendracandela <jitendra.kushavah@candelatech.com>
		
			
				
	
	
		
			309 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			309 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| 
 | |
|     2.x Security Services Rest API Tests: Test Login, Logout API's
 | |
| 
 | |
| """
 | |
| import logging
 | |
| import time
 | |
| import pytest
 | |
| import json
 | |
| import allure
 | |
| 
 | |
| 
 | |
| @pytest.mark.uc_sanity
 | |
| @pytest.mark.ow_sdk_tests
 | |
| @pytest.mark.ow_sdk_load_tests
 | |
| @pytest.mark.owsec_api_tests
 | |
| @allure.parent_suite("SDK Tests")
 | |
| @allure.suite("Security Service Tests")
 | |
| class TestUcentralSecService(object):
 | |
| 
 | |
|     @allure.title("Get System Endpoints")
 | |
|     @allure.testcase(name="WIFI-3450",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-3450")
 | |
|     @pytest.mark.system_endpoints
 | |
|     @pytest.mark.ow_sanity_lf
 | |
|     def test_secservice_system_endpoints(self, get_target_object):
 | |
|         """
 | |
|             Test the system endpoints to verify list of services that are present
 | |
|             Unique marker:pytest -m "system endpoints"
 | |
|         """
 | |
|         resp = get_target_object.controller_library_object.request("sec", "systemEndpoints", "GET", None, None)
 | |
|         body = resp.url + "," + str(resp.status_code) + ',' + resp.text
 | |
|         # allure.attach(name="security systemEndpoints", body=body)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         services = json.loads(resp.text)
 | |
|         # print(services)
 | |
| 
 | |
|         if 'endpoints' not in services:
 | |
|             assert False
 | |
| 
 | |
|         num_services = 0
 | |
|         uri_present = 0
 | |
|         authtype_present = 0
 | |
|         for item in services['endpoints']:
 | |
|             if item['type'] == 'owgw':
 | |
|                 num_services += 1
 | |
|                 if item['uri'] is not None:
 | |
|                     uri_present += 1
 | |
|                 if item['authenticationType'] is not None:
 | |
|                     authtype_present += 1
 | |
|             elif item['type'] == 'owfms':
 | |
|                 num_services += 1
 | |
|                 if item['uri'] is not None:
 | |
|                     uri_present += 1
 | |
|                 if item['authenticationType'] is not None:
 | |
|                     authtype_present += 1
 | |
| 
 | |
|         assert (num_services == 2) and (uri_present == 2) and (authtype_present == 2)
 | |
| 
 | |
|     @allure.title("Get Security Version")
 | |
|     @allure.testcase(name="WIFI-3451",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-3451")
 | |
|     @pytest.mark.security_versions
 | |
|     @pytest.mark.ow_sanity_lf
 | |
|     def test_secservice_get_version(self, get_target_object):
 | |
|         """
 | |
|             Test the system endpoint to verify the version of the service
 | |
|             Unique marker:pytest -m "security_version"
 | |
|         """
 | |
| 
 | |
|         params = {'command': 'info'}
 | |
|         resp = get_target_object.controller_library_object.request("sec", "system", "GET", params, None)
 | |
|         body = resp.url + "," + str(resp.status_code) + ',' + resp.text
 | |
|         # allure.attach(name="security get version result", body=body)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         system = json.loads(resp.text)
 | |
|         # print(system)
 | |
|         if 'version' not in system:
 | |
|             assert False
 | |
|         if system['version'] == '':
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("Get Security Service Uptime")
 | |
|     @pytest.mark.ow_sanity_lf
 | |
|     def test_secservice_get_uptime(self, get_target_object):
 | |
|         """
 | |
|             Test the system endpoint to verify the uptime of the service
 | |
|             WIFI-3451
 | |
|         """
 | |
| 
 | |
|         params = {'command': 'info'}
 | |
|         resp = get_target_object.controller_library_object.request("sec", "system", "GET", params, None)
 | |
|         body = resp.url + "," + str(resp.status_code) + ',' + resp.text
 | |
|         # allure.attach(name="security get uptime", body=body)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         system = json.loads(resp.text)
 | |
|         # print(system)
 | |
|         if 'uptime' not in system:
 | |
|             assert False
 | |
| 
 | |
|         if 'start' not in system:
 | |
|             assert False
 | |
| 
 | |
|         if system['uptime'] == '':
 | |
|             assert False
 | |
| 
 | |
|         if system['start'] == '':
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("Allows any microservice to validate a token and get security policy for a specific user")
 | |
|     @allure.testcase(name="WIFI-12608",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12608")
 | |
|     @pytest.mark.validatetoken
 | |
|     def test_validatetoken(self, get_target_object):
 | |
|         """
 | |
|             Allows any microservice to validate a token and get security policy for a specific user
 | |
|             Unique marker:pytest -m "validatetoken"
 | |
|         """
 | |
|         print("Token: ", get_target_object.controller_library_object.access_token)
 | |
|         params = {'token': get_target_object.controller_library_object.access_token}
 | |
|         resp = get_target_object.controller_library_object.request("sec", "validateToken", "GET", params, None)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|     # @allure.title("Get system configuration items")
 | |
|     # @allure.testcase(name="WIFI-12609",
 | |
|     #                  url="https://telecominfraproject.atlassian.net/browse/WIFI-12609")
 | |
|     # @pytest.mark.system_configuration_items
 | |
|     # def test_system_configuration_items(self, get_target_object):
 | |
|     #     """
 | |
|     #         Get system configuration items
 | |
|     #         Unique marker:pytest -m "system_configuration_items"
 | |
|     #     """
 | |
|     #     params = {'entries': "element1"}
 | |
|     #     resp = get_target_object.controller_library_object.request("sec", "systemConfiguration", "GET", params, None)
 | |
|     #
 | |
|     #     if resp.status_code != 200:
 | |
|     #         assert False
 | |
| 
 | |
|     @allure.title("Get List of existing users(User Management)")
 | |
|     @allure.testcase(name="WIFI-12605",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12605")
 | |
|     @pytest.mark.list_of_existing_users_user_management
 | |
|     def test_list_of_existing_users_user_management(self, get_target_object):
 | |
|         """
 | |
|             Retrieve a list of existing users as well as some information about them
 | |
|             Unique marker:pytest -m "list_of_existing_users_user_management"
 | |
|         """
 | |
|         resp = get_target_object.controller_library_object.request("sec", "users", "GET", None, None)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("CRUD User")
 | |
|     @allure.testcase(name="WIFI-12632",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12632")
 | |
|     @pytest.mark.crud_user
 | |
|     def test_crud_user(self, get_target_object):
 | |
|         """
 | |
|             CRUD User
 | |
|             Unique marker:pytest -m "crud_user"
 | |
|         """
 | |
|         payload = {
 | |
|             "id": "0",
 | |
|             "name": "Default User",
 | |
|             "description": "Testing through Automation",
 | |
|             "email": "testautomation@telecominfraproject.com",
 | |
|             "validated": True,
 | |
|             "validationEmail": "testautomation@telecominfraproject.com",
 | |
|             "changePassword": True,
 | |
|             "currentPassword": "OpenWifi%123",
 | |
|             "userRole": "root"
 | |
|         }
 | |
|         # Delete if user already exist
 | |
|         resp = get_target_object.controller_library_object.request("sec", "users", "GET", None, None)
 | |
|         resp = resp.json()
 | |
|         all_users = resp["users"]
 | |
|         for i in all_users:
 | |
|             if i["email"] == payload["email"]:
 | |
|                 logging.info("User already exist")
 | |
|                 resp = get_target_object.controller_library_object.request("sec", "user/" + str(i["id"]), "DELETE",
 | |
|                                                                            None, None)
 | |
|                 time.sleep(2)
 | |
|                 if resp.status_code != 200:
 | |
|                     assert False
 | |
| 
 | |
|         # Create a single user
 | |
|         payload = json.dumps(payload)
 | |
|         resp = get_target_object.controller_library_object.request("sec", "user/0", "POST", None, payload)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         time.sleep(2)
 | |
|         resp = resp.json()
 | |
|         user_id = resp['id']
 | |
|         # Retrieve the information for a single user
 | |
|         resp = get_target_object.controller_library_object.request("sec", "user/" + str(user_id), "GET", None, None)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         # Modify a single user
 | |
|         edited_payload = {
 | |
|             "name": "Modified name"
 | |
|         }
 | |
|         edited_payload = json.dumps(edited_payload)
 | |
|         resp = get_target_object.controller_library_object.request("sec", "user/" + str(user_id), "PUT", None,
 | |
|                                                                    edited_payload)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|         # Delete a single user
 | |
|         resp = get_target_object.controller_library_object.request("sec", "user/" + str(user_id), "DELETE", None,
 | |
|                                                                    None)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("Get the Authenticator QR Code")
 | |
|     @allure.testcase(name="WIFI-12633",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12633")
 | |
|     @pytest.mark.authenticator_qr_code
 | |
|     def test_authenticator_qr_code(self, get_target_object):
 | |
|         """
 | |
|             Get the Authenticator QR Code
 | |
|             Unique marker:pytest -m "authenticator_qr_code"
 | |
|         """
 | |
|         params = {'reset': False}
 | |
|         resp = get_target_object.controller_library_object.request("sec", "totp", "GET", params, None)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("Get List of existing users(Subscribers)")
 | |
|     @allure.testcase(name="WIFI-12606",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12606")
 | |
|     @pytest.mark.list_of_existing_users_subscribers
 | |
|     def test_list_of_existing_users_subscribers(self, get_target_object):
 | |
|         """
 | |
|             Retrieve a list of existing users as well as some information about them
 | |
|             Unique marker:pytest -m "list_of_existing_users_subscribers"
 | |
|         """
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subusers", "GET", None, None)
 | |
| 
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|     @allure.title("CRUD subuser")
 | |
|     @allure.testcase(name="WIFI-12643",
 | |
|                      url="https://telecominfraproject.atlassian.net/browse/WIFI-12643")
 | |
|     @pytest.mark.crud_subuser
 | |
|     def test_crud_subuser(self, get_target_object):
 | |
|         """
 | |
|             CRUD subuser
 | |
|             Unique marker:pytest -m "crud_subuser"
 | |
|         """
 | |
|         payload = {
 | |
|             "id": "0",
 | |
|             "name": "Default User",
 | |
|             "description": "Testing through Automation",
 | |
|             "email": "testautomation@telecominfraproject.com",
 | |
|             "validated": True,
 | |
|             "validationEmail": "testautomation@telecominfraproject.com",
 | |
|             "changePassword": False,
 | |
|             "currentPassword": "OpenWifi%123",
 | |
|             "userRole": "subscriber"
 | |
|         }
 | |
|         # Delete if user already exist
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subusers", "GET", None, None)
 | |
|         resp = resp.json()
 | |
|         all_users = resp["users"]
 | |
|         for i in all_users:
 | |
|             if i["email"] == payload["email"]:
 | |
|                 logging.info("User already exist")
 | |
|                 resp = get_target_object.controller_library_object.request("sec", "subuser/" + str(i["id"]), "DELETE",
 | |
|                                                                            None, None)
 | |
|                 time.sleep(2)
 | |
|                 if resp.status_code != 200:
 | |
|                     assert False
 | |
|         # Create a single user
 | |
|         payload = json.dumps(payload)
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subuser/0", "POST", None, payload)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         time.sleep(2)
 | |
|         resp = resp.json()
 | |
|         user_id = resp['id']
 | |
|         # Retrieve the information for a single user
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subuser/" + str(user_id), "GET", None, None)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
|         # Modify a single user
 | |
|         edited_payload = {
 | |
|             "name": "Modified name"
 | |
|         }
 | |
|         edited_payload = json.dumps(edited_payload)
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subuser/" + str(user_id), "PUT", None,
 | |
|                                                                    edited_payload)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 | |
| 
 | |
|         # Delete a single user
 | |
|         resp = get_target_object.controller_library_object.request("sec", "subuser/" + str(user_id), "DELETE", None,
 | |
|                                                                    None)
 | |
|         if resp.status_code != 200:
 | |
|             assert False
 |