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

Add automated tests for registration and shift # page #335

Merged
merged 8 commits into from
Jun 13, 2016
133 changes: 125 additions & 8 deletions vms/event/tests/test_shift#.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ class Shift#(LiveServerTestCase):
def setUp(self):
volunteer_user = User.objects.create_user(
username = 'volunteer',
password = 'volunteer',
email = 'volunteer@volunteer.com')
password = 'volunteer')

Volunteer.objects.create(
user = volunteer_user,
Expand All @@ -29,6 +28,7 @@ def setUp(self):
state = 'state',
country = 'country',
phone_number = '9999999999',
email = 'volunteer@volunteer.com',
unlisted_organization = 'organization')

# create an org prior to registration. Bug in Code
Expand Down Expand Up @@ -59,19 +59,19 @@ def login(self):
def register_event_utility(self):
Event.objects.create(
name = 'event',
start_date = '2016-06-15',
end_date = '2016-06-16')
start_date = '2016-05-10',
end_date = '2018-06-16')

def register_job_utility(self):
Job.objects.create(
name = 'job',
start_date = '2016-06-15',
end_date = '2016-06-15',
start_date = '2016-05-10',
end_date = '2017-06-15',
event = Event.objects.get(name = 'event'))

def register_shift_utility(self):
Shift.objects.create(
date = '2016-06-15',
date = '2017-06-15',
start_time = '09:00',
end_time = '15:00',
max_volunteers ='6',
Expand Down Expand Up @@ -130,7 +130,7 @@ def test_#_shifts_with_registered_shifts(self):
'job')
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[2]').text,
'June 15, 2016')
'June 15, 2017')
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[3]').text,
'9 a.m.')
Expand Down Expand Up @@ -215,3 +215,120 @@ def test_empty_events(self):
self.assertEqual(self.driver.find_element_by_xpath(
'//table//tbody//tr[1]//td[4]').text, 'View Jobs')

def test_shift_sign_up_with_outdated_shifts(self):
self.login()

self.register_event_utility()
self.register_job_utility()

# create outdated shift
Shift.objects.create(
date = '2016-05-11',
start_time = '09:00',
end_time = '15:00',
max_volunteers ='6',
job = Job.objects.get(name = 'job'))

# open Shift #
self.driver.find_element_by_link_text('Shift #').click()

# on event page
self.assertEqual(self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[4]').text, 'View Jobs')
self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[4]//a').click()

# on jobs page
self.assertEqual(self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[4]').text, 'View Shifts')
self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[4]//a').click()

self.assertEqual(self.driver.find_element_by_class_name('alert-info').text,'There are currently no shifts for the job job.')

def test_shift_sign_up_with_no_slots(self):

self.register_event_utility()
self.register_job_utility()

# create shift with no slot
shift_2 = Shift.objects.create(
date = '2016-05-11',
start_time = '09:00',
end_time = '15:00',
max_volunteers ='1',
job = Job.objects.get(name = 'job'))

# Create another volunteer
volunteer_user_2 = User.objects.create_user(
username = 'volunteer-2',
password = 'volunteer')

volunteer_2 = Volunteer.objects.create(
user = volunteer_user_2,
address = 'address',
city = 'city',
state = 'state',
country = 'country',
phone_number = '9999999999',
email = 'volunteer2@volunteer.com',
unlisted_organization = 'organization')

# Assign shift to the volunteer
VolunteerShift.objects.create(
shift = shift_2,
volunteer = volunteer_2)

# Login as volunteer 1 and open Shift #
self.login()
self.driver.find_element_by_link_text('Shift #').click()

# on event page
self.assertEqual(self.driver.find_element_by_class_name('alert-info').text,'There are no events.')

def test_search_event(self):

self.register_event_utility()
self.register_job_utility()
self.register_shift_utility()

# Login as volunteer 1 and open Shift #
self.login()
self.driver.find_element_by_link_text('Shift #').click()

# enter date range in which an event starts
self.driver.find_element_by_id('from').send_keys('05/08/2016')
self.driver.find_element_by_id('to').send_keys('08/31/2017')
self.driver.find_element_by_xpath('//form[1]').submit()
# verify that the event shows up
self.assertEqual(self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[1]').text, 'event')

# enter date range in which no event starts
self.driver.find_element_by_id('from').clear()
self.driver.find_element_by_id('to').clear()
self.driver.find_element_by_id('from').send_keys('10/08/2016')
self.driver.find_element_by_id('to').send_keys('08/31/2017')
self.driver.find_element_by_xpath('//form[1]').submit()
# verify that no event shows up on event page
self.assertEqual(self.driver.find_element_by_class_name('alert-info').text,'There are no events.')

# enter only incorrect starting date
self.driver.find_element_by_id('from').clear()
self.driver.find_element_by_id('to').clear()
self.driver.find_element_by_id('from').send_keys('10/08/2016')
# verify that no event shows up on event page
self.assertEqual(self.driver.find_element_by_class_name('alert-info').text,'There are no events.')

"""# enter only correct starting date
self.driver.find_element_by_id('from').clear()
self.driver.find_element_by_id('from').send_keys('05/10/2016')
# verify that the event shows up
self.assertEqual(self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[1]').text, 'event')"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@smarshy Can we delete this and the below one as well? Any specific reason we are keeping them?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tapasweni-pathak Yes, these tests verify the correct behavior of search event form. I have commented them out because the tests fail due to bug #337 at this point. Once the bug is fixed, these can be uncommented.


# enter only incorrect ending date
self.driver.find_element_by_id('from').clear()
self.driver.find_element_by_id('to').send_keys('10/08/2015')
# verify that no event shows up on event page
self.assertEqual(self.driver.find_element_by_class_name('alert-info').text,'There are no events.')

"""# enter correct ending date
self.driver.find_element_by_id('to').clear()
self.driver.find_element_by_id('to').send_keys('06/15/2017')
# verify that the event shows up
self.assertEqual(self.driver.find_element_by_xpath('//table//tbody//tr[1]//td[1]').text, 'event')"""
Loading