Exemplo n.º 1
0
 def test_admin_can_access_another_profile(self):
     user1 = UserFactory.create(
         first_name="Fratišek",
         last_name="Vičar",
         is_staff=True,
     )
     user2 = UserFactory.create()
     self.browser.get(self.server_url)
     self.login_by_form(user1.username, "password", self.browser)
     self.browser.get(self.server_url + "/user/" + user2.username + "/")
     self.assertIn("Hours", self.browser.page_source)
Exemplo n.º 2
0
 def test_user_cant_access_another_profile(self):
     user1 = UserFactory.create()
     user2 = UserFactory.create()
     self.browser.get(self.server_url)
     self.login_by_form(user1.username, "password", self.browser)
     self.browser.get(self.server_url + "/sessions/" + user2.username + "/")
     self.assertIn("Restricted", self.browser.page_source, 1)
     self.browser.get(self.server_url + "/swipes/" + user2.username + "/")
     self.assertIn("Restricted", self.browser.page_source, 2)
     self.browser.get(self.server_url + "/user/" + user2.username + "/")
     self.assertIn("Restricted", self.browser.page_source, 3)
     self.browser.get(self.server_url + "/logout/")
     self.assertIn(self.server_url + "/login/", self.browser.current_url)
Exemplo n.º 3
0
 def test_admin_can_swipe_user_out(self):
     user1 = UserFactory.create(is_staff=True)
     user2 = UserFactory.create()
     self.browser.get(self.server_url)
     swipe = SwipeFactory(user=user2, swipe_type="IN")
     self.login_by_form(user1.username, "password", self.browser)
     self.wait_for_element_with_name("OUTUSER")
     self.browser.find_element_by_name('OUTUSER').click()
     WebDriverWait(self.browser, 3).until(
         EC.alert_is_present(), 'Timed out waiting for PA creation ' +
         'confirmation popup to appear.')
     self.browser.switch_to_alert().accept()
     self.browser.get(self.server_url + "/logout/")
     self.login_by_form(user2.username, "password", self.browser)
     self.wait_for_element_with_name("IN")
Exemplo n.º 4
0
    def test_click_on_logout(self):

        user = UserFactory.create()
        self.login_by_form(user.username, "password", self.browser)
        self.assertEqual(self.server_url + "/user/" + user.username + "/",
                         self.browser.current_url)
        self.browser.find_element_by_class_name('a-logout').click()
        self.assertIn(self.server_url + "/login/", self.browser.current_url)
Exemplo n.º 5
0
 def adminCanGetXlsxExport(self):
     print("Hey")
     user = UserFactory.create(is_staff=True, )
     self.browser.get(self.server_url)
     self.login_by_form(user.username, "password", self.browser)
     self.browser.get(self.server_url + "/administrator/")
     self.wait_for_element_with_name('xlsx')
     self.browser.find_element_by_name('xlsx').click()
     self.assertIn("xlsx", self.browser.page_source)
Exemplo n.º 6
0
    def test_new_pre_auth(self):
        user = UserFactory.create()
        self.browser.get(self.server_url)
        self.wait_to_be_logged_out(user.username)

        self.create_pre_authenticated_session(user.username)

        self.browser.get(self.server_url)
        self.wait_to_be_logged_in(user)
Exemplo n.º 7
0
    def test_click_on_logout(self):

        user = UserFactory.create()
        self.browser.get(self.server_url)
        self.login_by_form(user.username, "password", self.browser)
        self.assertEqual(self.server_url + "/user/" + user.username + "/",
                         self.browser.current_url)
        self.browser.find_element_by_class_name('menu-icon').click()
        self.wait_for_element_to_be_clickable_with_css_selector_click(
            "i[class='fa fa-power-off']")
        self.assertIn(self.server_url + "/login/", self.browser.current_url)
Exemplo n.º 8
0
 def test_user_can_refresh_page_without_resending_forms(self):
     user = UserFactory.create()
     self.browser.get(self.server_url)
     self.login_by_form(user.username, "password", self.browser)
     element = self.browser.find_element_by_name('IN')
     actions = ActionChains(self.browser)
     actions.move_to_element(element)
     actions.click(element)
     self.wait_for_element_with_id('myDropdown')
     self.browser.refresh()
     self.wait_for_element_with_id('myDropdown')
     self.assertIn(self.server_url + "/user/", self.browser.current_url)
Exemplo n.º 9
0
    def test_user_can_look_up_his_sessions_months(self):
        user = UserFactory.create()

        swipe = SwipeFactory(user=user,
                             swipe_type="IN",
                             datetime=timezone.now() -
                             timedelta(hours=24 * 32))
        swipe = SwipeFactory(user=user,
                             swipe_type="OUT",
                             datetime=timezone.now() -
                             timedelta(hours=24 * 31))
        swipe = SwipeFactory(user=user,
                             swipe_type="IN",
                             datetime=timezone.now() + timedelta(hours=1))
        swipe = SwipeFactory(user=user,
                             swipe_type="OUT",
                             datetime=timezone.now() + timedelta(hours=2))
        swipe = SwipeFactory(user=user,
                             swipe_type="IN",
                             datetime=timezone.now() +
                             timedelta(hours=24 * 31))
        swipe = SwipeFactory(user=user,
                             swipe_type="OUT",
                             datetime=timezone.now() +
                             timedelta(hours=24 * 32))
        self.assertEqual(Session.objects.count(), 3)
        for session in Session.objects.all():
            self.browser.get(self.server_url)
            self.login_by_form(user.username, "password", self.browser)
            session_url = "{0}/sessions/{1}/{2}/{3:0>2}/".format(
                self.server_url,
                user.username,
                session.get_date().year,
                session.get_date().month,
            )

            self.browser.get(session_url)
            try:
                self.browser.find_element_by_link_text("Detail")
            except NoSuchElementException:
                self.fail(
                    "Can't find Detail on page {}, session date: {}".format(
                        session_url,
                        session.get_date(),
                    ))
            finally:
                self.browser.get(self.server_url + "/logout/")
                self.assertIn(self.server_url + "/login/",
                              self.browser.current_url)
Exemplo n.º 10
0
    def test_login_and_logout_users(self):

        user = UserFactory.create()
        self.browser.get(self.server_url)

        self.create_pre_authenticated_session(user.username)
        self.browser.get(self.server_url)

        self.wait_to_be_logged_in(user)
        self.assertIn("Dashboard", self.browser.page_source)
        self.assertEqual(self.server_url + "/user/" + user.username + "/",
                         self.browser.current_url)

        self.browser.find_element_by_class_name('menu-icon').click()
        self.wait_for_element_to_be_clickable_with_css_selector_click(
            "i[class='fa fa-power-off']")
        self.wait_to_be_logged_out(user.username)
        self.assertIn(self.server_url + "/login/", self.browser.current_url)
Exemplo n.º 11
0
    def test_click_on_logo_returns_home_page(self):

        user = UserFactory.create()

        #logged out - just refreshing page
        self.browser.get(self.server_url)
        self.browser.find_element_by_class_name('navbar-brand').click()
        self.assertEqual(self.server_url + "/login/?next=/",
                         self.browser.current_url)

        #login - logo taking us to profile page
        self.login_by_form(user.username, "password", self.browser)
        self.assertEqual(self.server_url + "/user/" + user.username + "/",
                         self.browser.current_url)
        self.browser.find_element_by_class_name('navbar-brand').click()
        self.assertEqual(self.server_url + "/user/" + user.username + "/",
                         self.browser.current_url)
        self.browser.find_element_by_class_name('a-logout').click()
        self.assertIn(self.server_url + "/login/", self.browser.current_url)
Exemplo n.º 12
0
    def test_there_should_be_no_session_long_time_ago(self):

        user = UserFactory.create()
        swipe = SwipeFactory(user=user, swipe_type="IN")
        self.browser.get(self.server_url)
        self.login_by_form(user.username, "password", self.browser)
        self.assertEqual(Session.objects.count(), 1)
        SESSION_URL = self.server_url + "/sessions/" + user.username + "/2014/06/"

        self.browser.get(SESSION_URL)
        self.assertEqual(SESSION_URL, self.browser.current_url)
        try:
            element = self.browser.find_element_by_link_text("Detail")
        except NoSuchElementException:
            pass
        else:
            self.fail("There are sessions!")
        finally:
            self.browser.get(self.server_url + "/logout/")
            self.assertIn(self.server_url + "/login/",
                          self.browser.current_url)
Exemplo n.º 13
0
 def setUp(self):
     self.user = UserFactory.create()
     self.token = Token.objects.create(user=self.user)
     self.client = APIClient()
     self.client.credentials(HTTP_AUTHORIZATION="Token " + self.token.key)