| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  | from __future__ import absolute_import | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-04 10:13:12 +08:00
										 |  |  | from testutils import ADMIN_CLIENT, suppress_urllib3_warning | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  | from testutils import TEARDOWN | 
					
						
							|  |  |  | from library.user import User | 
					
						
							|  |  |  | from library.configurations import Configurations | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestProjects(unittest.TestCase): | 
					
						
							| 
									
										
										
										
											2020-11-04 10:13:12 +08:00
										 |  |  |     @suppress_urllib3_warning | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  |     def setUp(self): | 
					
						
							| 
									
										
										
										
											2020-02-25 10:40:29 +08:00
										 |  |  |         self.conf= Configurations() | 
					
						
							|  |  |  |         self.user = User() | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     @unittest.skipIf(TEARDOWN == False, "Test data won't be erased.") | 
					
						
							| 
									
										
										
										
											2020-11-04 10:13:12 +08:00
										 |  |  |     def tearDown(self): | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  |         #1. Delete user(UA); | 
					
						
							|  |  |  |         self.user.delete_user(TestProjects.user_assign_sys_admin_id, **ADMIN_CLIENT) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def testAssignSysAdmin(self): | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         Test case: | 
					
						
							|  |  |  |             Assign Sys Admin | 
					
						
							|  |  |  |         Test step and expected result: | 
					
						
							|  |  |  |             1. Create a new user(UA); | 
					
						
							|  |  |  |             2. Set user(UA) has sysadmin role by admin, check user(UA) can modify system configuration; | 
					
						
							|  |  |  |             3. 3. Set user(UA) has no sysadmin role by admin, check user(UA) can not modify system configuration; | 
					
						
							|  |  |  |             4. Set user(UA) has sysadmin role by admin, check user(UA) can modify system configuration. | 
					
						
							|  |  |  |         Tear down: | 
					
						
							|  |  |  |             1. Delete user(UA). | 
					
						
							|  |  |  |         """
 | 
					
						
							|  |  |  |         url = ADMIN_CLIENT["endpoint"] | 
					
						
							|  |  |  |         user_assign_sys_admin_password = "Aa123456" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         #1. Create a new user(UA); | 
					
						
							|  |  |  |         TestProjects.user_assign_sys_admin_id, user_assign_sys_admin_name = self.user.create_user(user_password = user_assign_sys_admin_password, **ADMIN_CLIENT) | 
					
						
							|  |  |  |         USER_ASSIGN_SYS_ADMIN_CLIENT=dict(endpoint = url, username = user_assign_sys_admin_name, password = user_assign_sys_admin_password) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         #2. Set user(UA) has sysadmin role by admin, check user(UA) can modify system configuration; | 
					
						
							| 
									
										
										
										
											2019-08-13 14:02:00 +08:00
										 |  |  |         self.user.update_user_role_as_sysadmin(TestProjects.user_assign_sys_admin_id, True, **ADMIN_CLIENT) | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  |         self.conf.set_configurations_of_token_expiration(60, **USER_ASSIGN_SYS_ADMIN_CLIENT) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         #3. Set user(UA) has no sysadmin role by admin, check user(UA) can not modify system configuration; | 
					
						
							| 
									
										
										
										
											2019-08-13 14:02:00 +08:00
										 |  |  |         self.user.update_user_role_as_sysadmin(TestProjects.user_assign_sys_admin_id, False, **ADMIN_CLIENT) | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  |         self.conf.set_configurations_of_token_expiration(70, expect_status_code = 403, **USER_ASSIGN_SYS_ADMIN_CLIENT) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         #4. Set user(UA) has sysadmin role by admin, check user(UA) can modify system configuration. | 
					
						
							| 
									
										
										
										
											2019-08-13 14:02:00 +08:00
										 |  |  |         self.user.update_user_role_as_sysadmin(TestProjects.user_assign_sys_admin_id, True, **ADMIN_CLIENT) | 
					
						
							| 
									
										
										
										
											2018-12-04 12:26:12 +08:00
										 |  |  |         self.conf.set_configurations_of_token_expiration(80, **USER_ASSIGN_SYS_ADMIN_CLIENT) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main() | 
					
						
							|  |  |  | 
 |