class RegisterCoursesTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self): self.courses = RegisterCoursesPage(self.driver) self.nav = NavigationPage(self.driver) self.ts = Status(self.driver) def setUp(self): self.nav.click_header_logo() self.nav.navigate_to_all_courses() @pytest.mark.run(order=1) @data(*get_csv_data( "C:\\Users\\Ctramm\\PycharmProjects\\ExampleAutomationFramework\\testdata.csv" )) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv, zip_code): self.courses.enter_course_name(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(cc_num, cc_exp, cc_cvv, zip_code) result = self.courses.verify_enroll_button_is_disabled() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment Failed Verification") self.courses.take_screenshot("test_invalid_enrollment")
class RegisterCoursesTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_set_up(self, one_time_set_up): self.courses = RegisterCoursesPage(self.driver) self.ts = CheckStatus(self.driver) self.nav = NavigationPage(self.driver) def set_up(self): self.nav.navigate_to_all_courses() @pytest.mark.run(order=1) @data(*get_csv_data( r"C:\Users\blabl\PycharmProjects\FrameworkPractice\testdata.csv")) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv): self.courses.enter_course_name(course_name) time.sleep(3) self.courses.select_course_to_enroll(course_name) time.sleep(3) self.courses.enroll_course(num=cc_num, exp=cc_exp, cvv=cc_cvv) result = self.courses.verify_enroll_failed() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment verification FAILED") self.courses.web_scroll() self.driver.find_element_by_link_text("ALL COURSES").click() time.sleep(5)
class RegisterCoursesTest(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self, one_time_set_up): self.cp = RegisterCoursesPage(self.driver) self.ts = TestStatus(self.driver) @pytest.mark.run(order=1) def test_invalid_enrollment(self): self.cp.enter_course_name("JavaScript") self.cp.select_course_to_enroll("JavaScript for beginners") self.cp.enroll_course("6548 9856 1254 1236", "1023", "123") result = self.cp.verify_enroll_failed() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment fail verification")
class TestRegisterCourses(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.courses = RegisterCoursesPage(self.driver) self.cp = CheckPoint(self.driver) @pytest.mark.run(order=1) def test_invalidEnrollment(self): self.courses.search_course("JavaScript") self.courses.select_course_to_enroll("JavaScript for beginners") self.courses.enroll_course("1234 5678 9012 3456", "1220", "444", "Brazil", "18000") result = self.courses.verify_enroll_failed() self.cp.mark_final("test_invalidEnrollment", result, "Enrollment failed verification")
class RegisterCoursesTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self): self.courses = RegisterCoursesPage(self.driver) self.ts = Status(self.driver) @pytest.mark.run(order=1) def test_invalid_enrollment(self): self.courses.enter_course_name("JavaScript") self.courses.select_course_to_enroll("JavaScript for beginners") self.courses.enroll_course(num="10", exp="1220", cvv="10", zip_code="76710") result = self.courses.verify_enroll_button_is_disabled() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment Failed Verification")
class RegisterMultipleCoursesTest(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self, one_time_set_up): self.cp = RegisterCoursesPage(self.driver) self.ts = TestStatus(self.driver) @pytest.mark.run(order=1) @data( ("JavaScript for beginners", "6548 9856 1254 1236", "1023", "123"), ("Learn Python 3 from scratch", "6548 9856 1254 1239", "1024", "321")) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv): self.cp.enter_course_name(course_name) self.cp.select_course_to_enroll(course_name) self.cp.enroll_course(cc_num, cc_exp, cc_cvv) result = self.cp.verify_enroll_failed() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment fail verification") self.driver.find_element_by_link_text("ALL COURSES").click()
class RegisterCoursesTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self): self.courses = RegisterCoursesPage(self.driver) self.ts = Status(self.driver) @pytest.mark.run(order=1) @data(("JavaScript for beginners", "10", "1220", "10", "76710"), ("Learn Python 3 from scratch", "20", "1221", "20", "90210")) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv, zip_code): self.courses.enter_course_name(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(cc_num, cc_exp, cc_cvv, zip_code) result = self.courses.verify_enroll_button_is_disabled() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment Failed Verification") self.driver.get("https://letskodeit.teachable.com/courses")
class RegisterCoursesCSVDataTest(unittest.TestCase): @pytest.fixture(autouse=True) def object_setup(self, one_time_set_up): self.cp = RegisterCoursesPage(self.driver) self.ts = TestStatus(self.driver) self.nav = NavigationPage(self.driver) def setUp(self): self.nav.navigate_to_all_courses() @pytest.mark.run(order=1) @data(*get_csv_data("test_data.csv")) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv): self.cp.enter_course_name(course_name) self.cp.select_course_to_enroll(course_name) self.cp.enroll_course(cc_num, cc_exp, cc_cvv) result = self.cp.verify_enroll_failed() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment fail verification")
class TestRegisterCoursesCSVData(unittest.TestCase): @pytest.fixture(autouse=True) def objectSetup(self, oneTimeSetUp): self.courses = RegisterCoursesPage(self.driver) self.cp = CheckPoint(self.driver) self.nav = NavigationPage(self.driver) def setUp(self): self.nav.go_to_main() @pytest.mark.run(order=1) @data(*get_csv_data("testdata.csv")) @unpack def test_invalidEnrollment(self, course_name, cc_num, cc_exp, cc_cvv, country, zip): self.courses.search_course(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(cc_num, cc_exp, cc_cvv, country, zip) result = self.courses.verify_enroll_failed() self.cp.mark_final("test_invalidEnrollment", result, "Enrollment failed verification")
class RegisterCoursesCSVDataTests(unittest.TestCase): test_data = os.path.join("..", "register_course_data.csv") @pytest.fixture(autouse=True) def object_setup(self, one_time_setup): self.courses = RegisterCoursesPage(self.driver) self.ts = ResultStatus(self.driver) self.nav = NavigationPage(self.driver) # Method name must be specified in camel case in order to work def setUp(self): self.nav.navigate_to_website_logo() time.sleep(3) self.nav.navigate_to_all_courses() time.sleep(2) # Enrolment failure - credit card number incorrect @pytest.mark.run(order=1) @data(*get_csv_data(test_data)) @unpack def test_enrol_failed(self, course_name, cc_num, cc_exp, cc_cvc, cc_country, country_type): """ Test failure for incorrect card number when enter payment details for enrolling on a course and the credit card fails validation. Is only applicable to paid-for courses. """ self.courses.enter_course_name(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(num=cc_num, exp=cc_exp, cvc=cc_cvc, country=cc_country, data_type=country_type) result1, result2 = self.courses.verify_card_check_failed( "The card number is incorrect.") self.ts.mark(result1, "Card validation failure message is present") self.ts.mark_final("test_enroll_failed", result2, "Card validation failure message displayed")
class RegisterCoursesTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_set_up(self, one_time_set_up): self.courses = RegisterCoursesPage(self.driver) self.ts = CheckStatus(self.driver) @pytest.mark.run(order=1) @data(("JavaScript for beginners", "1234567812345678", "1234", "123"), ("Selenium WebDriver Advanced", "1234567812345678", "1234", "123")) @unpack def test_invalid_enrollment(self, course_name, cc_num, cc_exp, cc_cvv): self.courses.enter_course_name(course_name) time.sleep(3) self.courses.select_course_to_enroll(course_name) time.sleep(3) self.courses.enroll_course(num=cc_num, exp=cc_exp, cvv=cc_cvv) result = self.courses.verify_enroll_failed() self.ts.mark_final("test_invalid_enrollment", result, "Enrollment verification FAILED") self.courses.web_scroll() self.driver.find_element_by_link_text("ALL COURSES").click() time.sleep(5)
class TestRegisterCoursesMultipleDataSet(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self, oneTimeSetUp): self.courses = RegisterCoursesPage(self.driver) self.cp = CheckPoint(self.driver) @pytest.mark.run(order=1) @data(("JavaScript for beginners", "1234 5678 9012 3456", "1220", "444", "Brazil", "18000"), ("Learn Python 3 from scratch", "6541 8025 4098 5146", "1225", "444", "Brazil", "18000")) @unpack def test_invalidEnrollment(self, course_name, cc_num, cc_exp, cc_cvv, country, zip): self.courses.search_course(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(cc_num, cc_exp, cc_cvv, country, zip) result = self.courses.verify_enroll_failed() self.cp.mark_final("test_invalidEnrollment", result, "Enrollment failed verification") self.driver.find_element_by_xpath( "//a[@class='navbar-brand header-logo']").click()
class RegisterCoursesMultiDataTests(unittest.TestCase): @pytest.fixture(autouse=True) def class_setup(self, one_time_setup): self.courses = RegisterCoursesPage(self.driver) self.ts = ResultStatus(self.driver) self.nav = NavigationPage(self.driver) # Method name must be specified in camel case in order to work def setUp(self): self.nav.navigate_to_website_logo() time.sleep(2) self.nav.navigate_to_all_courses() time.sleep(2) # Enrolment failure - credit card number incorrect @pytest.mark.run(order=1) @data(("JavaScript for beginners", "6414524464145244", "122017", "123", "GB", "value"), ("Learn Python 3 from scratch", "2014574120145741", "012019", "230", "US", "value")) @unpack def test_enrol_failed(self, course_name, num, exp, cvc, country, country_type): """ Test failure for incorrect card number when enter payment details for enrolling on a course and the credit card fails validation """ self.courses.enter_course_name(course_name) self.courses.select_course_to_enroll(course_name) self.courses.enroll_course(num=num, exp=exp, cvc=cvc, country=country, data_type=country_type) result1, result2 = self.courses.verify_card_check_failed( "The card number is incorrect.") self.ts.mark(result1, "Card failure message is present") self.ts.mark_final("test_enroll_failed", result2, "Card failure message displayed")