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()
示例#2
0
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'))
示例#4
0
文件: tests_view.py 项目: JRubics/ISA
    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'))
示例#6
0
文件: tests_view.py 项目: JRubics/ISA
 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
示例#7
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#8
0
    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)
示例#9
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#10
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#11
0
    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,)))
示例#12
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#13
0
    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
示例#15
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#16
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#17
0
    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)
示例#18
0
 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)
示例#19
0
 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)
示例#21
0
 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/"
     )
示例#22
0
    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)
示例#23
0
文件: tests_view.py 项目: JRubics/ISA
    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
示例#24
0
 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
        )
示例#26
0
文件: tests_view.py 项目: JRubics/ISA
    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
        )
示例#28
0
 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 ?')
示例#30
0
 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)