Skip to content
This repository was archived by the owner on Jan 26, 2021. It is now read-only.

Added database checks #380

Merged
merged 29 commits into from
Aug 24, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
86ee33a
Added database checks for volunteer and admin registration
smarshy Aug 17, 2016
7f2c9fb
Added database checks for create/edit job
smarshy Aug 17, 2016
83c6d6b
Added database checks for create and edit shift
smarshy Aug 17, 2016
a513dd5
Added database checks for create, edit and delete organization
smarshy Aug 17, 2016
041f86a
Added database checks for delete event, job and shift
smarshy Aug 17, 2016
d122b88
Added database checks for shift cancellation/registration, edit profile
smarshy Aug 17, 2016
8aa9103
Added new app for page object model
smarshy Jul 14, 2016
1300d38
Added base, volunteer and admin registration pages
smarshy Jul 22, 2016
29b4268
Stored all page urls separately
smarshy Jul 23, 2016
6549cf8
Added home and authentication pages
smarshy Jul 23, 2016
267ed65
Added volunteer search, report and profile pages
smarshy Jul 23, 2016
8788963
Added pages for administrator app
smarshy Jul 24, 2016
e16963c
Added pages for shift app
smarshy Jul 24, 2016
5423245
Added pages for event and job
smarshy Jul 26, 2016
f5fb618
Added locators for admin and volunteer registration pages
smarshy Jul 31, 2016
adf1f1a
Added locators file for authentication app
smarshy Jul 31, 2016
4b3d57e
Added locators files for volunteer app
smarshy Aug 2, 2016
90b7459
Added page locators for administrator app
smarshy Aug 3, 2016
daf3538
Added locators for shift app
smarshy Aug 5, 2016
ea7b148
Added locators for job, event and home apps
smarshy Aug 6, 2016
e30bc56
Linked page objects to tests for volunteer
smarshy Aug 10, 2016
cb6c674
Updated settings file
smarshy Aug 10, 2016
d7c16b8
Linked page objects to tests for shift app
smarshy Aug 12, 2016
d037e7c
Linked page objects to tests for registration app
smarshy Aug 12, 2016
cd7de82
Linked event, home and job app to tests
smarshy Aug 12, 2016
e1b05c1
Linked authentication app page objects to tests
smarshy Aug 12, 2016
925fd05
Linked page objects to tests for administrator app
smarshy Aug 16, 2016
4ca6dd6
Added database checks for create and edit event
smarshy Aug 17, 2016
ed3cd29
Added database checks for add, edit and cancel hours
smarshy Aug 21, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
507 changes: 193 additions & 314 deletions vms/administrator/tests/test_formFields.py

Large diffs are not rendered by default.

117 changes: 39 additions & 78 deletions vms/administrator/tests/test_report.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
from django.contrib.staticfiles.testing import LiveServerTestCase

from django.db import IntegrityError
from selenium.webdriver.support.ui import Select

from pom.locators.administratorReportPageLocators import *
from pom.pages.administratorReportPage import AdministratorReportPage
from pom.pages.authenticationPage import AuthenticationPage

from shift.utils import (
create_admin,
Expand All @@ -24,19 +27,18 @@ class Report(LiveServerTestCase):

@classmethod
def setUpClass(cls):
cls.homepage = '/'
cls.authentication_page = '/authentication/login/'
cls.report_page = '/administrator/report/'
cls.report_shift_summary_path = '//div[2]/div[4]'

cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window()
cls.authentication_page = AuthenticationPage(cls.driver)
cls.report_page = AdministratorReportPage(cls.driver)
cls.elements = AdministratorReportPageLocators()
super(Report, cls).setUpClass()

def setUp(self):
create_admin()
self.login_admin()
self.report_page.go_to_admin_report()

def tearDown(self):
pass
Expand All @@ -47,56 +49,17 @@ def tearDownClass(cls):
super(Report, cls).tearDownClass()

def login_admin(self):
self.login('admin', 'admin')

def login(self, username, password):
self.driver.get(self.live_server_url + self.authentication_page)
self.driver.find_element_by_id('id_login').send_keys(username)
self.driver.find_element_by_id('id_password').send_keys(password)
self.driver.find_element_by_xpath('//form[1]').submit()

def logout(self):
self.driver.find_element_by_link_text('Log Out').click()

def go_to_admin_report(self):
self.driver.find_element_by_link_text('Report').click()

def fill_report_form(self, info):
self.driver.find_element_by_xpath(
'//input[@name = "first_name"]').clear()
self.driver.find_element_by_xpath(
'//input[@name = "last_name"]').clear()
[select1, select2, select3] = self.get_event_job_organization_selectors()

self.driver.find_element_by_xpath(
'//input[@name = "first_name"]').send_keys(info[0])
self.driver.find_element_by_xpath(
'//input[@name = "last_name"]').send_keys(info[1])

"""select1.select_by_visible_text(info[2])
select2.select_by_visible_text(info[3])
select3.select_by_visible_text(info[4])"""

self.driver.find_element_by_xpath('//form[1]').submit()

def get_event_job_organization_selectors(self):
select1 = Select(self.driver.find_element_by_xpath('//select[@name = "event_name"]'))
select2 = Select(self.driver.find_element_by_xpath('//select[@name = "job_name"]'))
select3 = Select(self.driver.find_element_by_xpath('//select[@name = "organization"]'))
return (select1, select2, select3)
self.authentication_page.server_url = self.live_server_url
self.authentication_page.login({ 'username' : 'admin', 'password' : 'admin'})

def verify_shift_details(self, total_shifts, hours):
total_no_of_shifts = self.driver.find_element_by_xpath(
self.report_shift_summary_path).text.split(' ')[10].strip('\nTotal')

total_no_of_hours = self.driver.find_element_by_xpath(
self.report_shift_summary_path).text.split(' ')[-1].strip('\n')

total_no_of_shifts = self.report_page.get_shift_summary().split(' ')[10].strip('\nTotal')
total_no_of_hours = self.report_page.get_shift_summary().split(' ')[-1].strip('\n')
self.assertEqual(total_no_of_shifts, total_shifts)
self.assertEqual(total_no_of_hours, hours)

#Failing test case which has been documented
#Test commented out to prevent travis build failure
#Test commented out to prevent travis build failure - bug #327

"""def test_null_values_with_dataset(self):
# register dataset
Expand All @@ -120,28 +83,28 @@ def verify_shift_details(self, total_shifts, hours):

logged_shift = log_hours_with_details(volunteer, created_shift, "09:00", "12:00")

report_page = self.report_page

# check admin report with null fields, should return the above shift
self.driver.get(self.live_server_url + self.report_page)
self.fill_report_form(['','','','',''])
report_page.fill_report_form(['','','','',''])
self.verify_shift_details('1','3.0')

self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[1]').text, created_event.name)
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[6]').text, 'Aug. 21, 2016')
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[7]').text, '9 a.m.')
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[8]').text, '12 p.m.')
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[9]').text, '3.0')"""
self.assertEqual(report_page.element_by_xpath(
self.elements.NAME).text, created_event.name)
self.assertEqual(report_page.element_by_xpath(
self.elements.DATE).text, 'Aug. 21, 2016')
self.assertEqual(report_page.element_by_xpath(
self.elements.START_TIME).text, '9 a.m.')
self.assertEqual(report_page.element_by_xpath(
self.elements.END_TIME).text, '12 p.m.')
self.assertEqual(report_page.element_by_xpath(
self.elements.HOURS).text, '3.0')"""

def test_null_values_with_empty_dataset(self):
# should return no entries
self.go_to_admin_report()
self.fill_report_form(['','','','',''])
self.assertEqual(self.driver.find_element_by_class_name(
'alert-danger').text, 'Your criteria did not return any results.')
report_page = self.report_page
report_page.fill_report_form(['','','','',''])
self.assertEqual(report_page.get_alert_box_text(),report_page.no_results_message)

def test_only_logged_shifts_are_reported(self):
# register dataset
Expand All @@ -165,47 +128,45 @@ def test_only_logged_shifts_are_reported(self):
# shift is assigned to volunteer-one, but hours have not been logged
volunteer_shift = register_volunteer_for_shift_utility(created_shift, volunteer)

report_page = self.report_page
# check admin report with null fields, should not return the above shift
self.driver.get(self.live_server_url + self.report_page)
self.fill_report_form(['','','','',''])
self.assertEqual(self.driver.find_element_by_class_name(
'alert-danger').text, 'Your criteria did not return any results.')
report_page.fill_report_form(['','','','',''])
self.assertEqual(report_page.get_alert_box_text(),report_page.no_results_message)

#Failing test case which has been documented
#Failing test case which has been documented - bug #327
#Test commented out to prevent travis build failure

"""def test_check_intersection_of_fields(self):

self.create_dataset()

self.login_admin()
self.go_to_admin_report()
report_page = self.report_page

search_parameters_1 = ['tom','','','','']
self.fill_report_form(search_parameters_1)
report_page.fill_report_form(search_parameters_1)

self.verify_shift_details('2','2.0')

search_parameters_2 = ['','','','','org-one']
self.fill_report_form(search_parameters_2)
report_page.fill_report_form(search_parameters_2)

self.verify_shift_details('3','3.0')

search_parameters_3 = ['','','event-four','Two','']
self.fill_report_form(search_parameters_3)
report_page.fill_report_form(search_parameters_3)

# 1 shift of 1:30 hrs
self.verify_shift_details('1','1.5')

search_parameters_4 = ['','','one','','']
self.fill_report_form(search_parameters_4)
report_page.fill_report_form(search_parameters_4)

# 3 shifts of 0:30 hrs, 1:00 hrs, 1:00 hrs
self.verify_shift_details('3','2.5')

# check case-insensitive
search_parameters_5 = ['','sherlock','two','','']
self.fill_report_form(search_parameters_5)
report_page.fill_report_form(search_parameters_5)

self.verify_shift_details('1','2.0')

Expand Down
Loading