164 lines
6.0 KiB
Python
164 lines
6.0 KiB
Python
import pytest
|
|
import os
|
|
from pages.register_page import RegisterPage
|
|
from pages.live_coding_page import LiveCodingPage
|
|
from pages.profile_page import ProfilePage
|
|
|
|
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
|
|
TEST_DATA_DIR = os.path.join(BASE_DIR, "test_data")
|
|
|
|
@pytest.mark.usefixtures("driver")
|
|
class TestRegression:
|
|
|
|
#Regression Daftar Akun
|
|
def test_nama_valid_huruf_kecil(self, register_page, valid_register_data):
|
|
valid_register_data["nama_lengkap"] = "rurinhaliza"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_nim_valid_9_karakter(self, register_page, valid_register_data):
|
|
valid_register_data["nim"] = "E41222555"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_semester_valid_tengah(self, register_page, valid_register_data):
|
|
valid_register_data["semester"] = "4"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_angkatan_valid_random(self, register_page, valid_register_data):
|
|
valid_register_data["angkatan"] = valid_register_data["angkatan"]
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_email_valid_student_polije(self, register_page, valid_register_data):
|
|
valid_register_data["email"] = "siswa@student.polije.ac.id"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_password_valid(self, register_page, valid_register_data):
|
|
"""
|
|
Password valid (huruf besar, kecil, angka, simbol)
|
|
"""
|
|
valid_register_data["password"] = "Qwerty098"
|
|
valid_register_data["konfirmasi_password"] = "Qwerty098"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
def test_konfirmasi_password_sama(self, register_page, valid_register_data):
|
|
valid_register_data["password"] = "Zxcvbn123"
|
|
valid_register_data["konfirmasi_password"] = "Zxcvbn123"
|
|
register_page.fill_form(valid_register_data)
|
|
register_page.submit()
|
|
assert register_page.is_register_success()
|
|
|
|
# Regression materi kinesthetic
|
|
def test_submit_with_correct_code(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/materi/kinesthetic/1")
|
|
page = LiveCodingPage(driver)
|
|
|
|
page.append_code2("""
|
|
Mahasiswa
|
|
println
|
|
""")
|
|
page.submit_code()
|
|
|
|
result = page.get_result_message()
|
|
assert "Jawaban Benar" in result
|
|
print(result)
|
|
|
|
def test_next_button_on_first_page(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/materi/kinesthetic/1")
|
|
page = LiveCodingPage(driver)
|
|
initial_url = page.get_current_url()
|
|
|
|
page.click_next()
|
|
|
|
current_url = page.get_current_url()
|
|
|
|
assert "/kinesthetic/2" in current_url
|
|
|
|
#Regression Pofile
|
|
def test_email_tampil_sesuai_akun(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
"""
|
|
Verifikasi email tampil sesuai akun dan tidak kosong
|
|
"""
|
|
page.wait_until_page_loaded()
|
|
|
|
email = page.get_email()
|
|
|
|
assert email is not None
|
|
#assert email != ""
|
|
assert "@" in email
|
|
assert email.endswith(".ac.id")
|
|
#or email.endswith(".com")
|
|
|
|
def test_upload_file_selain_gambar_ditolak(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
"""
|
|
Upload file selain JPG/PNG harus ditolak
|
|
"""
|
|
old_src = page.get_profile_image_src()
|
|
|
|
file_path = os.path.join(TEST_DATA_DIR, "invalid_file.pdf")
|
|
page.upload_photo(file_path)
|
|
page.click_save()
|
|
page.refresh_page()
|
|
|
|
new_src = page.get_profile_image_src()
|
|
|
|
assert old_src == new_src
|
|
|
|
def test_nama_kosong(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
default_name = page.get_nama_lengkap()
|
|
page.set_nama_lengkap("")
|
|
page.click_save()
|
|
assert page.get_nama_lengkap() == default_name
|
|
|
|
def test_nim_kosong(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
default_nim = page.get_nim()
|
|
page.set_nim("")
|
|
page.click_save()
|
|
assert page.get_nim() == default_nim
|
|
|
|
def test_semester_valid(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
page.select_semester("1")
|
|
page.click_save()
|
|
page.wait_until_reload_after_save()
|
|
|
|
assert page.get_selected_semester() == "1"
|
|
|
|
def test_angkatan_valid(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
|
|
page.select_angkatan("2025")
|
|
page.click_save()
|
|
page.wait_until_reload_after_save()
|
|
|
|
assert page.get_selected_angkatan() == "2025"
|
|
|
|
def test_button_simpan_update_data(self,driver,login_as_user_belum_kuesionerNew):
|
|
driver.get("https://hypermedialearning.project2025.id/public/profile")
|
|
page = ProfilePage(driver)
|
|
new_name = "ItsTesting"
|
|
page.set_nama_lengkap(new_name)
|
|
page.click_save()
|
|
page.wait_until_reload_after_save()
|
|
assert page.get_nama_lengkap() == new_name
|