Update test case script with improvements
- Removing unused statement. - Testing already existing accounts.pull/59/head
							parent
							
								
									da9e29c5b6
								
							
						
					
					
						commit
						a87c741c13
					
				|  | @ -1,72 +1,79 @@ | |||
| # Each time you run the test script reset the database. | ||||
| # For this test script you won't need it since it changes | ||||
| # the Ta's email and name automatically | ||||
| import re | ||||
| import time | ||||
| import pytest | ||||
| from faker import Faker | ||||
| from selenium import webdriver | ||||
| from selenium.webdriver.common.by import By | ||||
| from selenium.webdriver.support.wait import WebDriverWait | ||||
| from selenium.webdriver.support import expected_conditions as EC | ||||
| 
 | ||||
| @pytest.mark.generate_password_1 | ||||
| def test_createTA(): | ||||
| 
 | ||||
|     driver_open = webdriver.Chrome() | ||||
|     driver_open.maximize_window() | ||||
| faker = Faker() | ||||
| @pytest.mark.skip(reason="function to be used in the test_scripts") | ||||
| def createTA(driver, TA_name, emails, password): | ||||
|     full_name = driver.find_element('name', 'fullname') | ||||
|     full_name.send_keys(TA_name) | ||||
|     email = driver.find_element('name', 'email') | ||||
|     email.send_keys(emails) | ||||
|     pas = driver.find_element('name', 'password') | ||||
|     pas.send_keys(password) | ||||
|     usr_type = driver.find_element('name', 'type') | ||||
|     usr_type.click() | ||||
|     click_create = driver.find_element('name', 'create_btn') | ||||
|     click_create.click() | ||||
| 
 | ||||
| def login_lecturer(drivers): | ||||
|     # Open the website | ||||
|     driver_open.get("http://localhost/lrr/") | ||||
|     drivers.get("http://localhost/lrr/") | ||||
|     drivers.maximize_window() | ||||
| 
 | ||||
|     username_input = driver_open.find_element('name', "user") | ||||
|     username_input = drivers.find_element('name', "user") | ||||
| 
 | ||||
|     password_input = driver_open.find_element('name', "password") | ||||
|     password_input = drivers.find_element('name', "password") | ||||
| 
 | ||||
|     login_button = driver_open.find_element('id', "login_btn") | ||||
|     login_button = drivers.find_element('id', "login_btn") | ||||
| 
 | ||||
|     # login as a TA | ||||
|     # login as a Lecturer | ||||
|     username_input.send_keys("lanhui@qq.com") | ||||
|     password_input.send_keys("nil1234H@") | ||||
|     # Click the login button | ||||
|     time.sleep(5) | ||||
|     login_button.click() | ||||
|     admin_tab = driver_open.find_element('id', 'admin_tab') | ||||
|     admin_tab = drivers.find_element('id', 'admin_tab') | ||||
|     admin_tab.click() | ||||
|     print("login sucessfully") | ||||
|     cte_instructor = driver_open.find_element('id', 'tab_ins_accounts') | ||||
| 
 | ||||
|     cte_instructor = drivers.find_element('id', 'tab_ins_accounts') | ||||
|     cte_instructor.click() | ||||
|     print(" everything is ok here ") | ||||
|     t = time.localtime() | ||||
|     current_time = time.strftime("%H:%M:%S", t) | ||||
|     time.sleep(25) | ||||
|     def createTA(driver, TA_name, emails, password): | ||||
|         full_name = driver.find_element('name', 'fullname') | ||||
|         full_name.send_keys(TA_name) | ||||
|         email= driver.find_element('name', 'email') | ||||
|         email.send_keys(emails) | ||||
|         pas=driver.find_element('name', 'password') | ||||
|         pas.send_keys(password) | ||||
|         usr_type=driver.find_element('name', 'type') | ||||
|         usr_type.click() | ||||
|         click_create =driver.find_element('name', 'create_btn') | ||||
|         click_create.click() | ||||
| 
 | ||||
| 
 | ||||
| def test_createTA(): | ||||
|     driver_open = webdriver.Chrome() | ||||
|     driver_open.maximize_window() | ||||
|     login_lecturer(driver_open) | ||||
|     try: | ||||
|         fullname = "testname" | ||||
|         email = "labtest0@fgy.com" | ||||
|         password = "newpasasr12345678" | ||||
|         createTA(driver_open,fullname,email,password)   # CREATE A TA  WITH FULLNAME lanhuitest email lanhuitest@test.com  password lanhui12345678 | ||||
|         fullname = faker.name() | ||||
|         email = faker.email() | ||||
|         password = "new1452345678" | ||||
|         createTA(driver_open, fullname, email,password)  # CREATE A TA  WITH FULLNAME lanhuitest email lanhuitest@test.com  password lanhui12345678 | ||||
| 
 | ||||
|         get_output = WebDriverWait(driver_open, 10).until( | ||||
|             EC.element_to_be_clickable((By.ID, "tab_ins_accounts")) | ||||
|              ) | ||||
|         ) | ||||
|         get_output.click() | ||||
|         get_output_msg = driver_open.find_element(By.CLASS_NAME, "alert-warning") | ||||
|         txt_alert = get_output_msg.text | ||||
|         time.sleep(15) | ||||
|         time.sleep(20) | ||||
| 
 | ||||
|         if txt_alert.find("TA user created successfully")==0: | ||||
| 
 | ||||
|             logout_button = driver_open.find_element(By.XPATH, "//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]") | ||||
|         if txt_alert.find("TA user created successfully") == 0: | ||||
|             logout_button = WebDriverWait(driver_open, 15).until( | ||||
|                 EC.element_to_be_clickable( | ||||
|                     (By.XPATH, "//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]")) | ||||
|             ) | ||||
|             time.sleep(5) | ||||
|             logout_button.click() | ||||
|             time.sleep(15) | ||||
|             time.sleep(10) | ||||
|             username_input = driver_open.find_element('name', "user") | ||||
|             password_input = driver_open.find_element('name', "password") | ||||
|             login_button = driver_open.find_element('id', "login_btn") | ||||
|  | @ -78,74 +85,27 @@ def test_createTA(): | |||
| 
 | ||||
|             login_button.click() | ||||
| 
 | ||||
|             time.sleep(15) | ||||
|             my_course = driver_open.find_element(By.CLASS_NAME, "display-6") | ||||
|             email_pattern = r"Use email (\S+) as account name" | ||||
|             password_pattern = r"as password (\S+)\." | ||||
|             email_match = re.search(email_pattern, txt_alert) | ||||
|             password_match = re.search(password_pattern, txt_alert) | ||||
|             print(f"Email: {email}") | ||||
|             print(f"Password: {password}") | ||||
|             print(" WELCOME TA YOU ARE IN") | ||||
|             time.sleep(20) | ||||
|         elif txt_alert.find("Email address ") == 0: | ||||
| 
 | ||||
|             time.sleep(22) | ||||
|             driver_open.quit() | ||||
| 
 | ||||
|         elif txt_alert.find("Email address ")==0: | ||||
|             print(" EMAIL ALREADY EXIST ") | ||||
|         else: | ||||
|             driver_open.quit() | ||||
|         try: | ||||
|             with open('TEST_CREATING_TA.txt', 'a') as test_output: | ||||
|                 test_output.write(f"\n {current_time} check this message  : {txt_alert}") | ||||
|         except Exception as e: | ||||
|             print(f"unexpected error: {e}") | ||||
| 
 | ||||
|         time.sleep(10) | ||||
|         time.sleep(5) | ||||
| 
 | ||||
|     finally: | ||||
|         driver_open.quit() | ||||
| @pytest.mark.generate_password_2() | ||||
| 
 | ||||
| 
 | ||||
| def test_generate_password(): | ||||
|     driver_open = webdriver.Chrome() | ||||
| 
 | ||||
|     # Open the website | ||||
|     driver_open.get("http://localhost/lrr/") | ||||
|     driver_open.maximize_window() | ||||
| 
 | ||||
|     username_input = driver_open.find_element('name', "user") | ||||
| 
 | ||||
|     password_input = driver_open.find_element('name', "password") | ||||
| 
 | ||||
|     login_button = driver_open.find_element('id', "login_btn") | ||||
| 
 | ||||
|     # login as a TA | ||||
|     username_input.send_keys("lanhui@qq.com") | ||||
|     password_input.send_keys("nil1234H@") | ||||
|     # Click the login button | ||||
|     login_button.click() | ||||
|     admin_tab = driver_open.find_element('id', 'admin_tab') | ||||
|     admin_tab.click() | ||||
|     print("login sucessfully") | ||||
|     cte_instructor = driver_open.find_element('id', 'tab_ins_accounts') | ||||
|     cte_instructor.click() | ||||
|     print(" everything is ok here ") | ||||
|     t = time.localtime() | ||||
|     current_time = time.strftime("%H:%M:%S", t) | ||||
|     time.sleep(25) | ||||
| 
 | ||||
|     def createTA(driver, TA_name, emails, password): | ||||
|         full_name = driver.find_element('name', 'fullname') | ||||
|         full_name.send_keys(TA_name) | ||||
|         email = driver.find_element('name', 'email') | ||||
|         email.send_keys(emails) | ||||
|         pas = driver.find_element('name', 'password') | ||||
|         pas.send_keys(password) | ||||
|         usr_type = driver.find_element('name', 'type') | ||||
|         usr_type.click() | ||||
|         click_create = driver.find_element('name', 'create_btn') | ||||
|         click_create.click() | ||||
| 
 | ||||
|     login_lecturer(driver_open) | ||||
|     try: | ||||
|         fullname = "tesame" | ||||
|         email = "generat@pass.com" | ||||
|         fullname = faker.name() | ||||
|         email = faker.email() | ||||
|         password = "" | ||||
|         createTA(driver_open, fullname, email, | ||||
|                  password)  # CREATE A TA  WITH FULLNAME lanhuitest email lanhuitest@test.com  password lanhui12345678 | ||||
|  | @ -168,8 +128,10 @@ def test_generate_password(): | |||
|                 # Extract email and password from the matches | ||||
|                 email = email_match.group(1) | ||||
|                 password = password_match.group(1) | ||||
|             logout_button = driver_open.find_element(By.XPATH, | ||||
|                                                      "//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]") | ||||
|             logout_button = WebDriverWait(driver_open, 10).until( | ||||
|                 EC.element_to_be_clickable( | ||||
|                     (By.XPATH, "//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]")) | ||||
|             ) | ||||
|             logout_button.click() | ||||
|             time.sleep(15) | ||||
|             username_input = driver_open.find_element('name', "user") | ||||
|  | @ -184,22 +146,50 @@ def test_generate_password(): | |||
|             login_button.click() | ||||
| 
 | ||||
|             time.sleep(20) | ||||
|             my_course = driver_open.find_element(By.CLASS_NAME, "display-6") | ||||
| 
 | ||||
|             print(f"WELCOME {fullname} YOU ARE IN") | ||||
| 
 | ||||
|         elif txt_alert.find("Email address ") == 0: | ||||
|             print(" EMAIL ALREADY EXIST ") | ||||
|             time.sleep(22) | ||||
|             driver_open.quit() | ||||
| 
 | ||||
|         else: | ||||
|             driver_open.quit() | ||||
|         try: | ||||
|             with open('TEST_CREATING_TA.txt', 'a') as test_output: | ||||
|                 test_output.write(f"\n {current_time} check this message  : {txt_alert}") | ||||
|         except Exception as e: | ||||
|             print(f"unexpected error: {e}") | ||||
| 
 | ||||
|         time.sleep(10) | ||||
|         time.sleep(5) | ||||
| 
 | ||||
|     finally: | ||||
|         driver_open.quit() | ||||
| 
 | ||||
| def test_existingTA(): | ||||
|     driver_open = webdriver.Chrome() | ||||
|     login_lecturer(driver_open) | ||||
|     try: | ||||
| # Use email nreyes@example.com as account name and new1452345678 as password. | ||||
|         fullname = "Maria" | ||||
|         email = "nreyes@example.com" | ||||
|         password = "new1452345678" | ||||
|         createTA(driver_open, fullname, email, | ||||
|                  password)  # CREATE A TA  WITH FULLNAME lanhuitest email lanhuitest@test.com  password lanhui12345678 | ||||
| 
 | ||||
|         get_output = WebDriverWait(driver_open, 5).until( | ||||
|             EC.element_to_be_clickable((By.ID, "tab_ins_accounts")) | ||||
|         ) | ||||
|         get_output.click() | ||||
|         get_output_msg = driver_open.find_element(By.CLASS_NAME, "alert-warning") | ||||
|         txt_alert = get_output_msg.text | ||||
|         time.sleep(20) | ||||
| 
 | ||||
|         if txt_alert.find("TA user created successfully") == 0: | ||||
|             time.sleep(20) | ||||
| 
 | ||||
| 
 | ||||
|         elif txt_alert.find("Email address ") == 0: | ||||
|             time.sleep(22) | ||||
|             driver_open.quit() | ||||
| 
 | ||||
|         else: | ||||
|             driver_open.quit() | ||||
| 
 | ||||
|         time.sleep(5) | ||||
| 
 | ||||
|     finally: | ||||
|         driver_open.quit() | ||||
		Loading…
	
		Reference in New Issue