def test_search_and_save_sub_button(self): """Force login , search a product, search a sub and save it. Then display the "my products" page to verify the presence of this one """ force_login(self.user1, self.driver, self.live_server_url) time.sleep(5) self.driver.get(str(self.live_server_url) + '/search/?query=Produit1') search_button = self.driver.find_element_by_id('search-Produit1') search_button.click() time.sleep(5) redirection_url = self.driver.current_url self.assertEquals(self.live_server_url + f"/{self.product1.id}/", redirection_url) time.sleep(5) save_button = self.driver.find_element_by_id('saved-Produit2') save_button.click() time.sleep(5) redirection_url = self.driver.current_url self.assertEquals(self.live_server_url + "/", redirection_url) time.sleep(5) self.driver.get(str(self.live_server_url) + '/mes-produits/') time.sleep(5) self.driver.quit()
def test_authenticated_user_with_uuid_pk_field_can_access_test_page( settings, selenium, base_url_): settings.AUTH_USER_MODEL = 'test_.MyUser' user = MyUser.objects.create_user(username='******', password='******') force_login(user=user, driver=selenium, base_url=base_url_) selenium.get(f'{base_url_}/test/login_required/') assert 'success' in selenium.page_source
def test_correct_solution_modal_pops_up_when_correct_solution(self): set_competition_status_active(self.configuration) force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) fill_in_solution_textarea(self.browser, """n = int(input()) for i in range(n): number = int(input()) if number % 15 == 0: print('FizzBuzz') elif number % 5 == 0: print('Buzz') elif number % 3 == 0: print('Fizz') else: print(number)""") self.browser.find_element_by_id('send-btn').click() click_button_on_confirmation_modal(self.browser, 'Tak') correct_solution_modal = self.browser.find_element_by_class_name('correct-answer-modal') self.assertIsNotNone(correct_solution_modal) self.assertEquals( correct_solution_modal.find_element_by_tag_name('h1').text, 'Rozwiązanie jest poprawne' ) self.assertIsNotNone(correct_solution_modal.find_element_by_id('check-icon'))
def test_car_full_reservation_choose_service_from_list(self): selenium = self.selenium force_login(self.user1, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/choose") selenium.find_element_by_name('radio1').click() assert 'Choose from list' in selenium.page_source selenium.find_element_by_name('choose' + str(self.service.id)).click() assert 'car/reservation' in selenium.current_url assert 'Take' in selenium.page_source assert 'Return' in selenium.page_source assert 'Find' in selenium.page_source selenium.find_element_by_name('date1').send_keys('01/01/2029') selenium.find_element_by_name('date2').send_keys('01/03/2029') selenium.find_element_by_name('seats').send_keys('1') selenium.find_element_by_name('find').click() assert len(selenium.find_elements_by_name('make_reservation')) is 2 assert 'Available cars:' in selenium.page_source selenium.find_element_by_id('make_reservation' + str(self.car.id)).send_keys(Keys.ENTER) assert 'confirm' in selenium.page_source assert 'close' in selenium.page_source selenium.find_element_by_name('confirm').click() assert ('user/home') in selenium.current_url
def test_runtime_error_modal_pops_up_when_runtime_error(self): set_competition_status_active(self.configuration) force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) fill_in_solution_textarea(self.browser, "aaa") self.browser.find_element_by_id('send-btn').click() click_button_on_confirmation_modal(self.browser, 'Tak') incorrect_solution_modal = self.browser.find_element_by_class_name( 'wrong-answer-modal') self.assertIsNotNone(incorrect_solution_modal) self.assertEquals( incorrect_solution_modal.find_element_by_tag_name('h1').text, 'Rozwiązanie jest niepoprawne' ) self.assertEquals( incorrect_solution_modal.find_element_by_tag_name('p').text, 'Przyczyna: Błąd czasu wykonania' ) self.assertIsNotNone( incorrect_solution_modal.find_element_by_id('clear-icon'))
def test_car_admin_home(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/user/home") assert 'car/service' in selenium.current_url assert 'testService' in selenium.page_source assert 'testCar' in selenium.page_source
def test_car_taken(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/service") assert len(selenium.find_elements_by_name('edit_car')) is 1 assert len(selenium.find_elements_by_name('delete_car')) is 1
def test_can_delete_book(self): # User had gone to website and added first book User = get_user_model() user = User.objects.create_user(username='******', password='******') force_login(user, webdriver.Chrome(), self.live_server_url) self.browser.get(self.live_server_url) self.browser.find_element_by_id('id_username').send_keys('usertest') self.browser.find_element_by_id('id_password').send_keys('test12345') button_login = self.browser.find_element_by_class_name('button') button_login.click() button_add_book = self.browser.find_element_by_class_name('button_add_book') input_title_box = self.get_title_input_box() input_current_page_box = self.get_current_page_input_box() input_total_pages_box = self.get_total_pages_input_box() input_title_box.send_keys("Fibonacci’s Rabbits") input_current_page_box.send_keys(10) input_total_pages_box.send_keys(176) button_add_book.click() # After that, the user tried to remove book that already occurs in a list delete_button = self.browser.find_element_by_class_name('delete_button') delete_button.click() # User realized that previous book had disappeared from his book list body = self.browser.find_element_by_tag_name('body').text self.assertNotIn("Fibonacci’s Rabbits", body)
def test_car_edit_car(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/edit/" + str(self.car.id)) selenium.find_element_by_name('name').clear() selenium.find_element_by_name('name').send_keys('car1 name') selenium.find_element_by_name('model').clear() selenium.find_element_by_name('model').send_keys('Model 2') select = Select(selenium.find_element_by_name('manufacturer_select')) select.select_by_value('4') select = Select(selenium.find_element_by_name('type_select')) select.select_by_value('3') selenium.find_element_by_name('price').clear() selenium.find_element_by_name('price').send_keys('2000') selenium.find_element_by_name('year').clear() selenium.find_element_by_name('year').send_keys('2008') selenium.find_element_by_name('seats').clear() selenium.find_element_by_name('seats').send_keys('5') selenium.find_element_by_name('edit_car').click() assert 'car/service' in selenium.current_url assert 'car1 name' in selenium.page_source assert 'Model 2' in selenium.page_source assert 'Fiat' in selenium.page_source assert 'Truck' in selenium.page_source assert '2000' in selenium.page_source assert '2008' in selenium.page_source assert '5' in selenium.page_source
def test_car_new_car(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/add/" + str(self.service.id)) selenium.find_element_by_name('name').send_keys('car1') selenium.find_element_by_name('model').send_keys('Model') select = Select(selenium.find_element_by_name('manufacturer_select')) select.select_by_value('1') select = Select(selenium.find_element_by_name('type_select')) select.select_by_value('2') selenium.find_element_by_name('price').send_keys('1000') selenium.find_element_by_name('year').send_keys('2012') selenium.find_element_by_name('seats').send_keys('4') selenium.find_element_by_name('add_car').click() assert 'car/service' in selenium.current_url assert 'car1' in selenium.page_source assert 'Model' in selenium.page_source assert 'Reno' in selenium.page_source assert 'Big car' in selenium.page_source assert '1000' in selenium.page_source assert '2012' in selenium.page_source assert '4' in selenium.page_source
def setUp(self): #run BEFORE every SINGLE test function #login self.browser = webdriver.Chrome(ChromeDriverManager().install()) #open a browser self.author_user = User.objects.create_user(username='******', password='******') force_login(self.author_user, self.browser, self.live_server_url) self.study_notes_category = Category.objects.create(name = 'Study notes') #id 1 #create the product self.product1 = Product.objects.create( image_link_1 = 'http://personal.psu.edu/xqz5228/jpg.jpg', image_link_2 = 'https://media.alienwarearena.com/media/1327-m.jpg', category = self.study_notes_category, #category taken from CATEGORY_CHOICES title = 'T-shirt', condition = 'N', price_in_SGD = 1.0, description = 'testing', this_product_has_multiple_quantities = True, delivery_location = 'CLB/Engineering', #delivery_location taken from DELIVERY_CHOICES extra_information = 'Nothing to add', author = self.author_user, #<----- #attributes auto-generated: pub_date and view_count ) self.PRODUCT_ID = 1 self.browser.get(self.live_server_url + reverse('product-detail', args = (self.PRODUCT_ID,)))
def test_car_edit_office(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/office/edit/" + str(self.office.id)) selenium.find_element_by_name('name').clear() selenium.find_element_by_name('name').send_keys('office name 1') selenium.find_element_by_name('country').clear() selenium.find_element_by_name('country').send_keys('GB') selenium.find_element_by_name('city').clear() selenium.find_element_by_name('city').send_keys('London') selenium.find_element_by_name('address').clear() selenium.find_element_by_name('address').send_keys('addr 1') selenium.find_element_by_name('number').clear() selenium.find_element_by_name('number').send_keys('4') selenium.find_element_by_name('edit_office').click() assert 'car/service' in selenium.current_url assert 'office name 1' in selenium.page_source assert 'GB' in selenium.page_source assert 'London' in selenium.page_source assert 'addr 1' in selenium.page_source assert '4' in selenium.page_source
def test_follow_button_render(self): # create test users user5 = User.objects.create(username="******", email="*****@*****.**", password="******") user6 = User.objects.create(username="******", email="*****@*****.**", password="******") # create test post post5 = Post.objects.create(author=user6, content="Are you following me?") # log user5 in force_login(user5, self.driver, self.live_server_url) self.driver.get(self.live_server_url) # go to new user profile and check follow button rendered on different profile user_profile_link = self.driver.find_elements_by_class_name( "card-title") user_profile_link[0].click() self.assertEqual(self.driver.title, "Social Network - newuser") follow_button = self.driver.find_element_by_id("follow") self.assertEqual(follow_button.text, "Follow") # logout logout = self.driver.find_element_by_id("logout") logout.click()
def test_authenticated_user_can_access_test_page(selenium, live_server): User = get_user_model() user = User.objects.create_user(username='******', password='******') force_login(user, selenium, live_server.url) selenium.get('{}/test/login_required/'.format(live_server.url)) assert 'success' in selenium.page_source
def test_car_edit_service(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/service") selenium.find_element_by_name('name').clear() selenium.find_element_by_name('name').send_keys('testService1') selenium.find_element_by_name('country').clear() selenium.find_element_by_name('country').send_keys('HU') selenium.find_element_by_name('city').clear() selenium.find_element_by_name('city').send_keys('Budapest') selenium.find_element_by_name('address').clear() selenium.find_element_by_name('address').send_keys('Street 2') selenium.find_element_by_name('number').clear() selenium.find_element_by_name('number').send_keys('33') selenium.find_element_by_name('promo_description').clear() selenium.find_element_by_name('promo_description').send_keys( 'someDesc 1') selenium.find_element_by_name('edit_service').click() assert 'car/service' in selenium.current_url assert 'testService1' in selenium.page_source assert 'HU' in selenium.page_source assert 'Budapest' in selenium.page_source assert 'Street 2' in selenium.page_source assert '33' in selenium.page_source assert 'someDesc 1' in selenium.page_source
def test_car_normal_user_home(self): selenium = self.selenium force_login(self.user1, selenium, self.live_server_url) selenium.get(self.live_server_url + "/user/home") assert 'user/home' in selenium.current_url assert 'Trip Invitations' in selenium.page_source assert 'Friend List' in selenium.page_source
def login(self, username): """ Authenticates the user with the given username """ # use the force_login method to enforce login user = get_user_model().objects.get(username=username) # TODO: Switch this to the appropriate django-selenium-clean method # once the PR gets merged force_login(user, self.selenium, self.live_server_url)
def setUp(self): self.diaAberto = create_Diaaberto_0() self.sessao = create_Sessao_1() self.sessao.save() self.participante = create_Participante_Rafael() group = Group.objects.get(name='Participante') group.user_set.add(self.participante) force_login(self.participante, self.driver, self.live_server_url)
def setUp(self): user = User.objects.create_user('testuser') force_login( user, self.driver, self.live_server_url, # Setting domain cookie for localhost isn't # supported by Firefox (and RFC) set_domain_in_session_cookie=False)
def test_home_button_works(self): force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) self.browser.find_element_by_id('home-icon').click() sleep(0.5) self.assertEqual(self.live_server_url + "/", self.browser.current_url)
def test_manage_stocks(self): user = CustomUser.objects.create_user( username='******', password='******' ) force_login(user, self.selenium, self.live_server_url) self.selenium.get(self.live_server_url + "/manage_stocks/") assert self.selenium.current_url == ( self.live_server_url + "/manage_stocks/" )
def force_login_judge(self): """ Tworzy nowego sędziego w bazie danych i wymusza zalogowanie go do systemu. """ user = get_user_model().objects.create(username='******', password='******') Judge.objects.create(user=user) force_login(user, self.browser, self.live_server_url) self.browser.get(self.live_server_url)
def test_user_home(self): selenium = self.selenium force_login(self.user, selenium, self.live_server_url) selenium.get(self.live_server_url + "/user/home") assert 'user/home' in selenium.current_url assert 'Trip Invitations' in selenium.page_source assert 'Friend List' in selenium.page_source assert 'Profile' in selenium.page_source assert 'You don\'t have reservations.' in selenium.page_source
def setUp(self): self.inscricao = create_Inscricao_1() self.inscricao.save() self.atividade = create_Atividade_0() self.atividade.save() self.responsavel = create_Responsavel_0() self.responsavel.save() group = Group.objects.get(name='Participante') group.user_set.add(self.inscricao.participante) force_login(self.inscricao.participante, self.driver, self.live_server_url)
def test_solution_panel_available(self): force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) task_panel = self.browser.find_element_by_class_name('task-panel') self.assertEquals( task_panel.find_element_by_tag_name('p').text, self.task1.description )
def test_car_search(self): selenium = self.selenium force_login(self.user1, selenium, self.live_server_url) selenium.get(self.live_server_url + "/car/choose") selenium.find_element_by_name('radio2').click() selenium.find_element_by_name('name').send_keys('testS') selenium.find_element_by_name('country1').send_keys('SRB') selenium.find_element_by_name('search_service').click() assert 'car/choose' in selenium.current_url assert 'testService' in selenium.page_source
def test_cancel_send_solution_button_works(self): force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) self.browser.find_element_by_id('send-btn').click() click_button_on_confirmation_modal(self.browser, 'Nie') self.assertEquals( self.browser.current_url, self.live_server_url + self.send_solution_url )
def setUp(self): super().setUp() # a user in database self.address = Address.objects.create( label_first="1 rue de l'impasse", label_second="", postal_code="75000", city="Paris", country="France" ) self.personal = Personal.objects.create( phone_number="01 02 03 04 05", address=self.address ) self.user = User.objects.create_user( email="*****@*****.**", first_name="Toto", last_name="LE RIGOLO", password="******", personal=self.personal ) # force login for this user force_login(self.user, self.driver, self.live_server_url) # some other data self.shopping_cart = ShoppingCart.objects.create( user=self.user, ) self.catalog = Catalog.objects.create( name="Catalogue de vêtements", ) self.file = os.getcwd() + "/tests/functional/files/survetement.jpg" self.image = UploadedFile(file=self.file) self.product_a = Product.objects.create( name="Produit A", image=self.image, is_available=True, is_free=False, price=25, catalog=self.catalog, ) self.product_b = Product.objects.create( name="Produit B", image=self.image, is_available=True, is_free=False, price=100, catalog=self.catalog, )
def test_confirm_send_solution_pops_up(self): force_login(self.team_user, self.browser, self.live_server_url) self.browser.get(self.live_server_url) go_to_task_panel(self.browser, task_num=1) sleep(0.5) self.browser.find_element_by_id('send-btn').click() confirmation_modal = self.browser.find_element_by_class_name( 'confirmation-modal') confirmation_modal_h1 = confirmation_modal.find_element_by_tag_name( 'h1') self.assertIsNotNone(confirmation_modal) self.assertEquals(confirmation_modal_h1.text, 'Czy na pewno chcesz przesłać rozwiązanie ?')
def setUp(self): super().setUp() # a user in database self.address = Address.objects.create(label_first="1 rue de l'impasse", label_second="", postal_code="75000", city="Paris", country="France") self.personal = Personal.objects.create(phone_number="01 02 03 04 05", address=self.address) self.user = User.objects.create_user(email="*****@*****.**", first_name="Toto", password="******", personal=self.personal) # force login for this user force_login(self.user, self.driver, self.live_server_url)