Add two new regression tests: test_student_with_valid_student_number_can_sign_up, test_student_with_invalid_student_number_cannot_sign_up
parent
39c14f7425
commit
debd85e74d
|
@ -259,7 +259,8 @@ INSERT INTO `students_data` (`ID`, `Student_ID`, `Passport_Number`) VALUES
|
||||||
(1, '201825800054', 'LJ7951632'),
|
(1, '201825800054', 'LJ7951632'),
|
||||||
(2, '201825800050', 'P00581929'),
|
(2, '201825800050', 'P00581929'),
|
||||||
(3, '201632120150', 'FN524516'),
|
(3, '201632120150', 'FN524516'),
|
||||||
(4, '11', '11');
|
(4, '202400000001', 'NA');
|
||||||
|
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -24,11 +24,6 @@ def login(driver, url, username, password):
|
||||||
EC.element_to_be_clickable((By.ID, "login_btn"))
|
EC.element_to_be_clickable((By.ID, "login_btn"))
|
||||||
)
|
)
|
||||||
login_button.click()
|
login_button.click()
|
||||||
|
|
||||||
# Wait for the admin_tab to become clickable
|
|
||||||
admin_tab = WebDriverWait(driver, 10).until(
|
|
||||||
EC.element_to_be_clickable((By.ID, "admin_tab"))
|
|
||||||
)
|
|
||||||
except (NoSuchElementException, UnexpectedAlertPresentException) as e:
|
except (NoSuchElementException, UnexpectedAlertPresentException) as e:
|
||||||
return f"Error: {str(e)}"
|
return f"Error: {str(e)}"
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ def test_lecturer_can_post_assignment(driver, url, restore_database):
|
||||||
assert 'Take-home quiz 1 (10 Marks, Individual)' in elem.text
|
assert 'Take-home quiz 1 (10 Marks, Individual)' in elem.text
|
||||||
elem = driver.find_element(By.CLASS_NAME, 'text-muted')
|
elem = driver.find_element(By.CLASS_NAME, 'text-muted')
|
||||||
assert 'Deadline: 2024-12-30' in elem.text
|
assert 'Deadline: 2024-12-30' in elem.text
|
||||||
|
driver.quit()
|
||||||
|
|
||||||
|
|
||||||
def test_lecturer_can_add_student_numbers(driver, url, restore_database):
|
def test_lecturer_can_add_student_numbers(driver, url, restore_database):
|
||||||
|
@ -133,12 +134,62 @@ def test_lecturer_can_add_student_numbers(driver, url, restore_database):
|
||||||
added += 1
|
added += 1
|
||||||
break
|
break
|
||||||
assert added == len(student_lst)
|
assert added == len(student_lst)
|
||||||
|
driver.quit()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip()
|
def test_student_with_valid_student_number_can_sign_up(driver, url, restore_database):
|
||||||
def test_student_can_sign_up():
|
# Student with recognizable student number 202400000001 can sign up an account
|
||||||
# Student with recognizable student number can sign up an account
|
driver.get(url)
|
||||||
assert True
|
driver.maximize_window()
|
||||||
|
elem = driver.find_element(By.ID, 'signup_link')
|
||||||
|
elem.click()
|
||||||
|
elem = driver.find_element(By.NAME, 'fullname')
|
||||||
|
elem.send_keys('Good Student')
|
||||||
|
elem = driver.find_element(By.NAME, 'user_student_id')
|
||||||
|
elem.send_keys('202400000001')
|
||||||
|
elem = driver.find_element(By.NAME, 'email')
|
||||||
|
elem.send_keys('goodstudent@qq.com')
|
||||||
|
elem = driver.find_element(By.NAME, 'password')
|
||||||
|
elem.send_keys('[123Abc]')
|
||||||
|
elem = driver.find_element(By.NAME, 'confirmpassword')
|
||||||
|
elem.send_keys('[123Abc]')
|
||||||
|
elem = driver.find_element(By.ID, 'signup_btn')
|
||||||
|
elem.click()
|
||||||
|
logout(driver)
|
||||||
|
|
||||||
|
# Log in Student account
|
||||||
|
login(driver, url, '202400000001', '[123Abc]')
|
||||||
|
elems = driver.find_elements(By.CLASS_NAME, 'nav-link')
|
||||||
|
assert 'Student ID' in elems[0].text
|
||||||
|
assert 'Good Student' in elems[0].text
|
||||||
|
driver.quit()
|
||||||
|
|
||||||
|
|
||||||
|
def test_student_with_invalid_student_number_cannot_sign_up(driver, url, restore_database):
|
||||||
|
# Student with unrecognizable student number cannot sign up an account
|
||||||
|
driver.get(url)
|
||||||
|
driver.maximize_window()
|
||||||
|
elem = driver.find_element(By.ID, 'signup_link')
|
||||||
|
elem.click()
|
||||||
|
elem = driver.find_element(By.NAME, 'fullname')
|
||||||
|
elem.send_keys('Good Student')
|
||||||
|
elem = driver.find_element(By.NAME, 'user_student_id')
|
||||||
|
elem.send_keys('202400000002')
|
||||||
|
elem = driver.find_element(By.NAME, 'email')
|
||||||
|
elem.send_keys('goodstudent@qq.com')
|
||||||
|
elem = driver.find_element(By.NAME, 'password')
|
||||||
|
elem.send_keys('[123Abc]')
|
||||||
|
elem = driver.find_element(By.NAME, 'confirmpassword')
|
||||||
|
elem.send_keys('[123Abc]')
|
||||||
|
elem = driver.find_element(By.ID, 'signup_btn')
|
||||||
|
elem.click()
|
||||||
|
|
||||||
|
# Log in Student account
|
||||||
|
login(driver, url, '202400000002', '[123Abc]')
|
||||||
|
elems = driver.find_elements(By.CLASS_NAME, 'nav-link')
|
||||||
|
assert not 'Student ID' in elems[0].text
|
||||||
|
assert not 'Good Student' in elems[0].text
|
||||||
|
driver.quit()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip()
|
@pytest.mark.skip()
|
||||||
|
|
Loading…
Reference in New Issue