def test_Registration(self): browser=self.driver registration_page = RegistrationPage(driver=browser) registration_page.go() registration_page.firstName_input.input_text(self.data['firstName']) registration_page.lastName_input.input_text(self.data['lastName']) registration_page.phone_input.input_text(self.data['phone']) registration_page.email_input.input_text(self.data['email']) registration_page.address1_input.input_text(self.data['address1']) registration_page.address2_input.input_text(self.data['address2']) registration_page.city_input.input_text(self.data['city']) registration_page.state_input.input_text(self.data['state']) registration_page.postalCode_input.input_text(self.data['postalCode']) registration_page.country_selection.select(self.data['country']) registration_page.userName_input.input_text(self.data['email']) registration_page.password_input.input_text(self.data['password']) registration_page.confirmPassword_input.input_text(self.data['password']) registration_page.submit_button.click() current_url = urlparse(browser.current_url) result = '{uri.scheme}://{uri.netloc}{uri.path}'.format(uri=current_url) assert result == 'http://newtours.demoaut.com/create_account_success.php', "Unexpected URL" sign_in_page = SignInPage(driver=browser) sign_in_page.go() sign_in_page.userName_input.input_text(self.data['email']) sign_in_page.password_input.input_text(self.data['password']) sign_in_page.submit_button.click() current_url = urlparse(browser.current_url) result = '{uri.scheme}://{uri.netloc}{uri.path}'.format(uri=current_url) assert result == 'http://newtours.demoaut.com/mercuryreservation.php', "Unexpected URL"
class FirstRegistrationPageTests(unittest.TestCase): delete_confirmation_email = False def setUp(self): if Mail.email_address is None: Mail.generate_email_address() self.browser = webdriver.Chrome() self.registration_page = RegistrationPage(driver=self.browser) self.registration_page.go() def test_first_registration_page_submission(self): self.delete_confirmation_email = True self.registration_page.email_input.input_text(Mail.email_address) self.assertEqual(self.registration_page.email_input.attribute('value'), Mail.email_address, 'Email field was not populated with test data.') self.registration_page.password_input.input_text(TestData.password) self.assertEqual( self.registration_page.password_input.attribute('value'), TestData.password, 'Password field was not populated with test data.') self.registration_page.terms_checkbox.click() self.registration_page.sign_up_btn.click() self.assertTrue(Mail.get_registration_pin()) self.assertTrue(self.registration_page.pin_input.find(), 'Second page of registration form is not opened,') def test_email_validation_ignore_side_spaces(self): self.delete_confirmation_email = True self.registration_page.email_input.input_text( f' {Mail.email_address} ') self.assertFalse(self.registration_page.email_error.find()) self.registration_page.password_input.input_text(TestData.password) self.registration_page.terms_checkbox.click() self.registration_page.sign_up_btn.click() self.assertTrue(Mail.get_registration_pin()) self.assertTrue(self.registration_page.pin_input.find(), 'Second page of registration form is not opened,') def test_email_validation_empty_field(self): self.delete_confirmation_email = False self.registration_page.email_input.click() self.registration_page.password_input.click() self.assertTrue(self.registration_page.email_error.find()) self.assertEqual(self.registration_page.email_error.text(), 'Email is required') def test_email_validation_missing_at(self): self.delete_confirmation_email = False self.registration_page.email_input.input_text('testemailyopmail.com') self.registration_page.password_input.click() self.assertTrue(self.registration_page.email_error.find()) self.assertEqual(self.registration_page.email_error.text(), 'Please enter a valid email') def test_password_validation_empty_field(self): self.delete_confirmation_email = False self.registration_page.email_input.input_text(Mail.email_address) self.registration_page.password_input.click() self.registration_page.email_input.click() self.assertTrue(self.registration_page.password_error.find()) self.assertEqual(self.registration_page.password_error.text(), 'Password is required') def test_promocode_field_appearance(self): self.delete_confirmation_email = False self.registration_page.promocode_question.click() self.assertTrue(self.registration_page.promocode_input.find()) self.registration_page.close_promocode_icon.click() self.assertFalse(self.registration_page.promocode_input.find()) def test_redirect_to_login_page(self): self.delete_confirmation_email = False self.registration_page.login_link.click() self.assertEqual(self.browser.current_url, 'https://www.optibet.lv/en/login') def tearDown(self): if self.delete_confirmation_email: Mail.delete_confirmation_message() self.browser.quit()
class SecondRegistrationPageTests(unittest.TestCase): def setUp(self): if Mail.email_address is None: Mail.generate_email_address() self.browser = webdriver.Chrome() self.registration_page = RegistrationPage(driver=self.browser) self.registration_page.go() self.registration_page.go_to_second_registration_page( Mail.email_address, TestData.password) Mail.get_registration_pin() def test_age_less_18_not_acceptable(self): # I created this test assuming people under 18 should not be able to complete registration. # They should not even be able to select their birth date. # However, birth dates for people who have 18th birthday later this year are available in the form. # Looks like a bug to me. # Not sure what would be the best way to handle such cases (display error, don't have such dates available etc.) # In this test I'm expecting an error under the selected date. date = TestData.get_invalid_birth_date() self.registration_page.select_birth_date(date) self.registration_page.id_input.click() self.assertTrue( self.registration_page.second_page_validation_error.find()) def test_birth_date_pid_correlation(self): self.registration_page.fill_second_registration_page( pin=Mail.registration_pin, phone=TestData.phone, first_name=TestData.first_name, last_name=TestData.last_name, birth_date=TestData.birth_date, pid=TestData.pid_not_matching_birth_date, ) self.registration_page.save_btn.click() self.assertTrue( self.registration_page.second_page_validation_error.find()) self.assertEqual( self.registration_page.second_page_validation_error.text(), 'Date of birth does not match with personal ID') def test_changing_email(self): self.registration_page.change_email_link.click() self.assertTrue(self.registration_page.email_input.find()) def test_second_registration_page_successful_submission(self): self.registration_page.fill_second_registration_page( pin=Mail.registration_pin, phone=TestData.phone, first_name=TestData.first_name, last_name=TestData.last_name, birth_date=TestData.birth_date, pid=TestData.pid_matching_birth_date, ) self.registration_page.save_btn.click() self.assertEqual( self.browser.current_url, 'https://www.optibet.lv/en/account/profile?dialogType=set-limit') def tearDown(self): Mail.delete_confirmation_message() self.browser.quit()