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)
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)
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")
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)