def test_edit_shift_with_invalid_timings(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with end hours less than start hours invalid_shift = ['08/30/2050', '18:00', '13:00', '5'] settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_warning_context(), 'Shift end time should be greater than start time')
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 cls.j3 = j3 # job with no shifts cls.j2 = j2 # job with shift which has no slot job_4 = ["Information Technologist","2012-11-2","2012-12-2","An IT job",e1] cls.j4 = create_job_with_details(job_4) shift_1 = ["2012-10-23","1:00","3:00",1,cls.j1] shift_2 = ["2012-10-25","2:00","4:00",2,cls.j1] shift_3 = ["2012-10-24","12:00","18:00",4,cls.j3] # shift with no slots shift_4 = ["2012-11-7","12:00","18:00",1,cls.j4] cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) cls.s3 = create_shift_with_details(shift_3) cls.s4 = create_shift_with_details(shift_4) # creating volunteers who would register for the shifts volunteer_1 = ['Yoshi',"Yoshi","Turtle","Mario Land","Nintendo Land","Nintendo State","Nintendo Nation","2374983247","*****@*****.**"] volunteer_2 = ['John',"John","Doe","7 Alpine Street","Maplegrove","Wyoming","USA","23454545","*****@*****.**"] volunteer_3 = ['Ash',"Ash","Ketchum","Pallet Town","Kanto","Gameboy","Japan","23454545","*****@*****.**"] cls.v1 = create_volunteer_with_details(volunteer_1) cls.v2 = create_volunteer_with_details(volunteer_2) cls.v3 = create_volunteer_with_details(volunteer_3)
def setUpModule(): """ - Creates objects which can be reused by multiple test classes - Creates shifts with limited slots and with multiple slots for use """ global e1 global j1, j2 global s1, s2, s3 event_1 = ["Open Source Event", "2012-9-1", "2012-11-23"] e1 = create_event_with_details(event_1) job_1 = [ "Software Developer", "2012-10-22", "2012-10-30", "A software job", e1 ] job_2 = [ "Systems Administrator", "2012-9-1", "2012-10-26", "A systems administrator job", e1 ] j1 = create_job_with_details(job_1) j2 = create_job_with_details(job_2) shift_1 = ["2012-10-28", "9:00", "15:00", 1, j1] shift_2 = ["2012-10-25", "10:00", "16:00", 2, j1] shift_3 = ["2012-10-22", "10:00", "16:00", 4, j2] s1 = create_shift_with_details(shift_1) s2 = create_shift_with_details(shift_2) s3 = create_shift_with_details(shift_3)
def test_edit_shift_with_invalid_date(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date not between job dates invalid_shift = ['02/05/2050', '04:00', '13:00', '2'] settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_warning_context(), 'Shift date should lie within Job dates')
def test_delete_job_with_associated_shifts(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-21', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url # delete job settings.navigate_to_job_list_view() self.delete_job_from_list() self.assertNotEqual(settings.get_danger_message(), None) self.assertEqual(settings.get_template_error_message(), 'You cannot delete a job that a shift is currently associated with.') # check job NOT deleted settings.navigate_to_job_list_view() self.assertEqual(settings.get_job_name(), 'job')
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 cls.j2 = j2 shift_1 = ["2015-08-23", "9:00", "15:00", 1, cls.j1] shift_2 = [date.today() + timedelta(7), "10:00", "16:00", 2, cls.j1] # one week date shift_3 = [date.today() + timedelta(1), "12:00", "18:00", 2, cls.j2] # tomorrow date cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) cls.s3 = create_shift_with_details(shift_3) volunteer_1 = [ 'Jake', "Jake", "Flamoy", "Mario Land", "Nintendo Land", "Nintendo State", "Nintendo Nation", "2374983247", "*****@*****.**" ] volunteer_2 = [ 'Dora', "Dorothy", "Flamoy", "7 Alpine Street", "Maplegrove", "Wyoming", "USA", "23454545", "*****@*****.**" ] org_name = 'Google' cls.org_obj = create_organization_with_details(org_name) cls.v1 = create_volunteer_with_details(volunteer_1, cls.org_obj) cls.v2 = create_volunteer_with_details(volunteer_2, cls.org_obj)
def test_simplify_shift(self): self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url event = ['event-name', '2050-05-24', '2050-05-28'] created_event = create_event_with_details(event) job = ['job', '2050-05-24', '2050-05-28', '', created_event] created_job = create_job_with_details(job) settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() # Check correctness of Job name and date. self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'May 24, 2050') self.assertEqual(settings.get_shift_job_end_date(), 'May 28, 2050') # Create shift and check job details in edit form shift = ['2050-05-28', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # Check correctness of Job name and date. self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'May 24, 2050') self.assertEqual(settings.get_shift_job_end_date(), 'May 28, 2050')
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 cls.j2 = j2 shift_1 = ["2015-08-23", "9:00", "15:00", 1, cls.j1] shift_2 = [date.today() + timedelta(7), "10:00", "16:00", 2, cls.j1] # one week date shift_3 = [date.today() + timedelta(1), "12:00", "18:00", 2, cls.j2] # tomorrow date cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) cls.s3 = create_shift_with_details(shift_3) volunteer_1 = [ 'Jake', "Jake", "Flamoy", "Mario Land", "Nintendo Land", "Nintendo State", "Nintendo Nation", "2374983247", "*****@*****.**" ] volunteer_2 = [ 'Dora', "Dorothy", "Flamoy", "7 Alpine Street", "Maplegrove", "Wyoming", "USA", "23454545", "*****@*****.**" ] cls.v1 = create_volunteer_with_details(volunteer_1) cls.v2 = create_volunteer_with_details(volunteer_2)
def test_edit_shift(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date between job dates shift = ['08/25/2050', '10:00', '13:00', '2'] settings.fill_shift_form(shift) with self.assertRaises(NoSuchElementException): settings.get_help_block() self.assertEqual(settings.get_shift_date(), 'Aug. 25, 2050')
def test_null_values_in_edit_shift(self): # Register Event event = ['event-name', '2050-05-24', '2050-05-28'] created_event = create_event_with_details(event) self.settings.go_to_events_page() settings = self.settings # Create Job with not-null values job = ['job', '2050-05-24', '2050-05-28', '', created_event] created_job = create_job_with_details(job) # Create Shift with not-null values shift = ['2050-05-24', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with null values shift = ['', '', '', ''] settings.fill_shift_form(shift) # verify that shift was not edited and error messages appear as # expected self.assertEqual(len(settings.get_help_blocks()), 4) self.assertEqual(settings.get_shift_date_error(), 'This field is required.') self.assertEqual(settings.get_shift_start_time_error(), 'This field is required.') self.assertEqual(settings.get_shift_end_time_error(), 'This field is required.') self.assertEqual(settings.get_shift_max_volunteer_error(), 'This field is required.')
def test_delete_shift(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() self.assertNotEqual(settings.get_results(), None) # delete shift self.delete_shift_from_list() # check deletion of shift settings.navigate_to_shift_list_view() self.assertEqual( settings.get_message_context(), 'There are currently no shifts. Please create shifts first.')
def test_edit_job_with_invalid_shift_date(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-21', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_job_list_view() invalid_job_one = ['event-name', 'changed job name', 'job description', '2050-09-01', '2050-09-11'] # edit job with date range such that the shift start date no longer # falls in the range settings.go_to_edit_job_page() settings.fill_job_form(invalid_job_one) # check job not edited and proper error message displayed self.assertNotEqual(self.driver.current_url, self.live_server_url + settings.job_list_page) self.assertEqual(settings.get_template_error_message(), 'You cannot edit this job as 1 associated shift no longer lies within the new date range')
def test_edit_shift_with_invalid_date(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date not between job dates invalid_shift = ['02/05/2050', '04:00', '13:00', '2'] settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_warning_context(), 'Shift date should lie within Job dates')
def test_edit_shift(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date between job dates shift = ['08/25/2050', '10:00', '13:00', '2'] settings.fill_shift_form(shift) with self.assertRaises(NoSuchElementException): settings.get_help_block() self.assertEqual(settings.get_shift_date(), 'Aug. 25, 2050')
def test_edit_shift_with_invalid_timings(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with end hours less than start hours invalid_shift = ['08/30/2050', '18:00', '13:00', '5'] settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_warning_context(), 'Shift end time should be greater than start time')
def test_delete_job_with_associated_shifts(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-21', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url # delete job settings.navigate_to_job_list_view() self.delete_job_from_list() self.assertNotEqual(settings.get_danger_message(), None) self.assertEqual( settings.get_template_error_message(), 'You cannot delete a job that a shift is currently associated with.' ) # check job NOT deleted settings.navigate_to_job_list_view() self.assertEqual(settings.get_job_name(), 'job')
def test_edit_job_with_invalid_shift_date(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-21', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_job_list_view() invalid_job_one = [ 'event-name', 'changed job name', 'job description', '2050-09-01', '2050-09-11' ] # edit job with date range such that the shift start date no longer # falls in the range settings.go_to_edit_job_page() settings.fill_job_form(invalid_job_one) # check job not edited and proper error message displayed self.assertNotEqual(self.driver.current_url, self.live_server_url + settings.job_list_page) self.assertEqual( settings.get_template_error_message(), 'You cannot edit this job as 1 associated shift no longer lies within the new date range' )
def setUpModule(): """ - Creates objects which can be reused by multiple test classes - Creates shifts with limited slots and with multiple slots for use """ global e1 global j1, j2 global s1, s2, s3 event_1 = ["Open Source Event", "2012-9-1", "2012-11-23"] e1 = create_event_with_details(event_1) job_1 = [ "Software Developer", "2012-10-22", "2012-10-30", "A software job", e1 ] job_2 = [ "Systems Administrator", "2012-9-1", "2012-10-26", "A systems administrator job", e1 ] j1 = create_job_with_details(job_1) j2 = create_job_with_details(job_2) shift_1 = ["2012-10-28", "9:00", "15:00", 1, j1] shift_2 = ["2012-10-25", "10:00", "16:00", 2, j1] shift_3 = ["2012-10-22", "10:00", "16:00", 4, j2] s1 = create_shift_with_details(shift_1) s2 = create_shift_with_details(shift_2) s3 = create_shift_with_details(shift_3)
def test_delete_shift(self): # register event first to create job event = ['event-name', '2050-08-21', '2050-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2050-08-21', '2050-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2050-08-21', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() self.assertNotEqual(settings.get_results(), None) # delete shift self.delete_shift_from_list() # check deletion of shift settings.navigate_to_shift_list_view() self.assertEqual(settings.get_message_context(), 'There are currently no shifts. Please create shifts first.')
def test_edit_shift(self): """ Test edit of shift with valid values. """ # register event first to create job event = { 'name': 'event-name', 'start_date': '2050-08-21', 'end_date': '2050-09-28', 'address': 'event-address', 'venue': 'event-venue', 'description': 'event-description' } created_event = create_event_with_details(event) # create job job = { 'name': 'job', 'start_date': '2050-08-21', 'end_date': '2050-08-30', 'description': '', 'event': created_event } created_job = create_job_with_details(job) # create shift shift = { 'date': '2050-08-21', 'start_time': '09:00', 'end_time': '12:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' } create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date between job dates shift = { 'date': '08/25/2050', 'start_time': '10:00', 'end_time': '13:00', 'max_volunteers': '2', 'address': 'shift-address', 'venue': 'shift-venue' } settings.fill_shift_form(shift) with self.assertRaises(NoSuchElementException): settings.get_help_block() self.assertEqual(settings.get_shift_date(), 'Aug. 25, 2050')
def test_edit_shift_with_invalid_timings(self): """ Test edit of shift with invalid time. """ # register event first to create job event = { 'name': 'event-name', 'start_date': '2050-08-21', 'end_date': '2050-09-28', 'address': 'event-address', 'venue': 'event-venue', 'description': 'event-description' } created_event = create_event_with_details(event) # create job job = { 'name': 'job', 'start_date': '2050-08-21', 'end_date': '2050-08-30', 'description': '', 'event': created_event } created_job = create_job_with_details(job) # create shift shift = { 'date': '2050-08-21', 'start_time': '09:00', 'end_time': '12:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' } create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with end hours less than start hours invalid_shift = { 'date': '08/30/2050', 'start_time': '18:00', 'end_time': '13:00', 'max_volunteers': '5', 'address': 'shift-address', 'venue': 'shift-venue' } settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_help_block().text, 'Start time must be before the end time')
def test_edit_shift_with_invalid_date(self): """ Test edit of shift with date not lying in job's date. """ # register event first to create job event = { 'name': 'event-name', 'start_date': '2050-08-21', 'end_date': '2050-09-28', 'address': 'event-address', 'venue': 'event-venue', 'description': 'event-description' } created_event = create_event_with_details(event) # create job job = { 'name': 'job', 'start_date': '2050-08-21', 'end_date': '2050-08-30', 'description': '', 'event': created_event } created_job = create_job_with_details(job) # create shift shift = { 'date': '2050-08-21', 'start_time': '09:00', 'end_time': '12:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' } create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with date not between job dates invalid_shift = { 'date': '02/05/2050', 'start_time': '04:00', 'end_time': '13:00', 'max_volunteers': '2', 'address': 'shift-address', 'venue': 'shift-venue' } settings.fill_shift_form(invalid_shift) # verify that shift was not edited and error message displayed self.assertEqual(settings.get_warning_context(), 'Shift date should lie within Job dates')
def test_delete_job_with_associated_shifts(self): """ Test deletion of job with shifts linked. """ # register event first to create job event = { 'name': 'event-name', 'start_date': '2050-08-21', 'end_date': '2050-09-28', 'address': 'event-address', 'venue': 'event-venue', 'description': 'event-description' } created_event = create_event_with_details(event) # create job job = { 'name': 'job', 'start_date': '2050-08-21', 'end_date': '2050-08-21', 'description': '', 'event': created_event } created_job = create_job_with_details(job) # create shift shift = { 'date': '2050-08-21', 'start_time': '09:00', 'end_time': '12:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' } create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url # delete job settings.navigate_to_job_list_view() self.delete_job_from_list() self.assertNotEqual(settings.get_danger_message(), None) self.assertEqual( settings.get_template_error_message(), 'You cannot delete a job that a shift is ' 'currently associated with.') # check job NOT deleted settings.navigate_to_job_list_view() self.assertEqual(settings.get_job_name(), job['name'])
def test_delete_shift(self): """ Test deletion of shift. """ # register event first to create job event = { 'name': 'event-name', 'start_date': '2050-08-21', 'end_date': '2050-09-28', 'address': 'event-address', 'venue': 'event-venue', 'description': 'event-description' } created_event = create_event_with_details(event) # create job job = { 'name': 'job', 'start_date': '2050-08-21', 'end_date': '2050-08-30', 'description': '', 'event': created_event } created_job = create_job_with_details(job) # create shift shift = { 'date': '2050-08-21', 'start_time': '09:00', 'end_time': '12:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' } create_shift_with_details(shift) self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() self.assertNotEqual(settings.get_results(), None) # delete shift self.delete_shift_from_list() # check deletion of shift settings.navigate_to_shift_list_view() self.assertEqual( settings.get_message_context(), 'There are currently no shifts. Please create shifts first.')
def setUpModule(): """ Creates events, jobs and shifts which can be reused by multiple test classes """ global e1, e2, e3, e4, e5 global j1, j2, j3, j4, j5 global s1, s2, s3, s4 event_1 = ["Open Source Event", "2012-10-22", "2012-10-23"] event_2 = ["Python Event", "2013-11-12", "2013-11-13"] event_3 = ["Django Event", "2015-07-02", "2015-07-03"] event_4 = ["Systers Event", "2015-07-25", "2015-08-08"] event_5 = ["Anita Borg Event", "2015-07-07", "2015-07-08"] e1 = create_event_with_details(event_1) e2 = create_event_with_details(event_2) e3 = create_event_with_details(event_3) e4 = create_event_with_details(event_4) e5 = create_event_with_details(event_5) job_1 = [ "Software Developer", "2012-10-22", "2012-10-23", "A software job", e1 ] job_2 = [ "Systems Administrator", "2013-11-12", "2013-11-13", "A systems administrator job", e2 ] job_3 = [ "Backend Dev", "2012-10-8", "2012-10-16", "A java developer job", e4 ] job_4 = ["Instructor", "2012-10-22", "2012-10-23", "", e4] job_5 = ["Instructor", "2012-10-22", "2012-10-23", "", e3] j1 = create_job_with_details(job_1) j2 = create_job_with_details(job_2) j3 = create_job_with_details(job_3) j4 = create_job_with_details(job_4) j5 = create_job_with_details(job_5) # shifts with limited, plenty and no slots shift_1 = ["2012-10-23", "9:00", "15:00", 1, j1] shift_2 = ["2012-10-23", "10:00", "16:00", 2, j1] shift_3 = ["2013-11-12", "12:00", "18:00", 4, j2] shift_4 = ["2013-10-23", "10:00", "18:00", 1, j4] s1 = create_shift_with_details(shift_1) s2 = create_shift_with_details(shift_2) s3 = create_shift_with_details(shift_3) s4 = create_shift_with_details(shift_4)
def setUpModule(): """ Creates events, jobs and shifts which can be reused by multiple test classes """ global e1, e2, e3, e4, e5 global j1, j2, j3, j4, j5 global s1, s2, s3, s4 event_1 = ["Open Source Event", "2012-10-22", "2012-10-23"] event_2 = ["Python Event", "2013-11-12", "2013-11-13"] event_3 = ["Django Event", "2015-07-02", "2015-07-03"] event_4 = ["Systers Event", "2015-07-25", "2015-08-08"] event_5 = ["Anita Borg Event", "2015-07-07", "2015-07-08"] e1 = create_event_with_details(event_1) e2 = create_event_with_details(event_2) e3 = create_event_with_details(event_3) e4 = create_event_with_details(event_4) e5 = create_event_with_details(event_5) job_1 = [ "Software Developer", "2012-10-22", "2012-10-23", "A software job", e1 ] job_2 = [ "Systems Administrator", "2013-11-12", "2013-11-13", "A systems administrator job", e2 ] job_3 = [ "Backend Dev", "2012-10-8", "2012-10-16", "A java developer job", e4 ] job_4 = ["Instructor", "2012-10-22", "2012-10-23", "", e4] job_5 = ["Instructor", "2012-10-22", "2012-10-23", "", e3] j1 = create_job_with_details(job_1) j2 = create_job_with_details(job_2) j3 = create_job_with_details(job_3) j4 = create_job_with_details(job_4) j5 = create_job_with_details(job_5) # shifts with limited, plenty and no slots shift_1 = ["2012-10-23", "9:00", "15:00", 1, j1] shift_2 = ["2012-10-23", "10:00", "16:00", 2, j1] shift_3 = ["2013-11-12", "12:00", "18:00", 4, j2] shift_4 = ["2013-10-23", "10:00", "18:00", 1, j4] s1 = create_shift_with_details(shift_1) s2 = create_shift_with_details(shift_2) s3 = create_shift_with_details(shift_3) s4 = create_shift_with_details(shift_4)
def create_shift(shift): """ Utility function to create a valid shift. :param shift: Iterable containing details of shift. :return: Shift type object. """ # Register event to create job event = { 'name': 'event-name', 'start_date': '2050-05-20', 'end_date': '2050-05-20', 'description': 'event-description', 'address': 'event-address', 'venue': 'event-venue' } e1 = create_event_with_details(event) # Create job to create shift job = { 'name': 'job name', 'start_date': '2050-05-20', 'end_date': '2050-05-20', 'description': 'job description', 'event': e1 } j1 = create_job_with_details(job) # Create shift to assign shift['job'] = j1 s1 = create_shift_with_details(shift) return s1
def test_max_volunteer_field(self): event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) job = ['job', '2017-08-21', '2017-08-21', '',created_event] created_job = create_job_with_details(job) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() invalid_shift = ['01/01/2016','12:00','11:00','0'] settings.fill_shift_form(invalid_shift) # verify that error message displayed self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.') # Create shift and try editing it with 0 value shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() settings.fill_shift_form(invalid_shift) # verify that error message displayed self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.')
def test_shift_sign_up_with_no_slots(self): registered_event = register_event_utility() registered_job = register_job_utility() sign_up_page = self.sign_up_page # create shift with no slot shift_2 = [ "2050-05-11", "9:00", "15:00", 1, Job.objects.get(name='job') ] s2 = create_shift_with_details(shift_2) # Create another volunteer volunteer_2 = [ 'volunteer-2', "Sam", "Turtle", "Mario Land", "Nintendo Land", "Nintendo State", "Nintendo Nation", "2374983247", "*****@*****.**" ] org_name = 'volunteer-organization' org_obj = create_organization_with_details(org_name) v2 = create_volunteer_with_details(volunteer_2, org_obj) # Assign shift to the volunteer registered_vol_shift = register_volunteer_for_shift_utility(s2, v2) # open Shift Sign Up sign_up_page.navigate_to_sign_up() # on event page self.assertEqual(sign_up_page.get_info_box().text, sign_up_page.no_event_message)
def test_null_values_in_edit_shift(self): # register event to create job event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) # create job with values job = ['job', '2017-08-21', '2017-08-21', '',created_event] created_job = create_job_with_details(job) # create shift shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # edit shift with null values shift = ['', '', '', ''] settings.fill_shift_form(shift) # verify that shift was not edited and error messages appear as # expected self.assertEqual(len(settings.get_help_blocks()), 4) self.assertEqual(settings.get_shift_date_error(), 'This field is required.') self.assertEqual(settings.get_shift_start_time_error(), 'This field is required.') self.assertEqual(settings.get_shift_end_time_error(), 'This field is required.') self.assertEqual(settings.get_shift_max_volunteer_error(), 'This field is required.') # database check to ensure that shift was not edited self.assertEqual(len(Shift.objects.all()), 1) self.assertNotEqual(len(Shift.objects.filter(date=created_shift.date)), 0)
def register_dataset(): """ Utility function to create data for testing :return: Shift type of object. """ e1 = create_event_with_details({ 'name': 'event', 'start_date': '2050-06-15', 'end_date': '2050-06-17', 'description': 'event-description', 'address': 'event-address', 'venue': 'event-venue' }) j1 = create_job_with_details({ 'name': 'job', 'start_date': '2050-06-15', 'end_date': '2050-06-15', 'description': 'job description', 'event': e1 }) s1 = create_shift_with_details({ 'date': '2050-06-15', 'start_time': '09:00', 'end_time': '15:00', 'max_volunteers': '6', 'job': j1, 'address': 'shift-address', 'venue': 'shift-venue' }) return s1
def test_only_logged_shifts_are_reported(self): # register dataset org = create_organization_with_details('organization-one') volunteer = create_volunteer() volunteer.organization = org volunteer.save() # register event first to create job event = ['Hackathon', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) # create job job = ['Developer', '2017-08-21', '2017-08-30', '', created_event] created_job = create_job_with_details(job) # create shift shift = ['2017-08-21', '09:00', '15:00', '10', created_job] created_shift = create_shift_with_details(shift) # 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 report_page.fill_report_form(['', '', '', '', '']) self.assertEqual(report_page.get_alert_box_text(), report_page.no_results_message)
def test_simplify_shift(self): event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) job = ['job', '2017-08-21', '2017-08-21', '',created_event] created_job = create_job_with_details(job) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() # verify that the correct job name and date are displayed self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'Aug. 21, 2017') self.assertEqual(settings.get_shift_job_end_date(), 'Aug. 21, 2017') # Create shift and check job details in edit form shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # verify that the correct job name and date are displayed self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'Aug. 21, 2017') self.assertEqual(settings.get_shift_job_end_date(), 'Aug. 21, 2017')
def test_simplify_shift(self): event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) job = ['job', '2017-08-21', '2017-08-21', '', created_event] created_job = create_job_with_details(job) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() # verify that the correct job name and date are displayed self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'Aug. 21, 2017') self.assertEqual(settings.get_shift_job_end_date(), 'Aug. 21, 2017') # Create shift and check job details in edit form shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() # verify that the correct job name and date are displayed self.assertEqual(settings.get_shift_job(), 'job') self.assertEqual(settings.get_shift_job_start_date(), 'Aug. 21, 2017') self.assertEqual(settings.get_shift_job_end_date(), 'Aug. 21, 2017')
def register_dataset(self): e1 = create_event_with_details(['event', '2017-06-15', '2017-06-17']) j1 = create_job_with_details( ['job', '2017-06-15', '2017-06-15', 'job description', e1]) s1 = create_shift_with_details( ['2017-06-15', '09:00', '15:00', '6', j1]) return s1
def test_max_volunteer_field(self): event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) job = ['job', '2017-08-21', '2017-08-21', '', created_event] created_job = create_job_with_details(job) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() invalid_shift = ['01/01/2016', '12:00', '11:00', '0'] settings.fill_shift_form(invalid_shift) # verify that error message displayed self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.') # Create shift and try editing it with 0 value shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() settings.fill_shift_form(invalid_shift) # verify that error message displayed self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.')
def test_delete_shift_with_volunteer(self): # register event first to create job event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) # create job job = ['job', '2017-08-21', '2017-08-30', '',created_event] created_job = create_job_with_details(job) # create shift shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) # create volunteer for shift volunteer = create_volunteer() shift_volunteer = register_volunteer_for_shift_utility( created_shift, volunteer) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() # delete shift self.delete_shift_from_list() # check error message displayed and shift not deleted self.assertEqual(settings.get_template_error_message(), 'You cannot delete a shift that a volunteer has signed up for.') # database check to ensure that shift is not deleted self.assertEqual(len(Shift.objects.all()), 1) self.assertNotEqual(len(Shift.objects.filter(date = created_shift.date)), 0)
def register_unlogged_dataset(self): """ Utility function to register data for testing. """ created_event = create_event_with_details({ 'name': 'event-unlogged', 'start_date': '2015-06-01', 'end_date': '2015-06-10', 'description': 'event-description', 'address': 'event-address', 'venue': 'event-venue' }) created_job = create_job_with_details({ 'name': 'jobUnlogged', 'start_date': '2015-06-01', 'end_date': '2015-06-10', 'description': 'job description', 'event': created_event }) created_shift = create_shift_with_details({ 'date': '2015-06-01', 'start_time': '09:00', 'end_time': '15:00', 'max_volunteers': '10', 'job': created_job, 'address': 'shift-address', 'venue': 'shift-venue' }) registered_shift =\ register_volunteer_for_shift_utility(created_shift, self.v1)
def test_only_logged_shifts_are_reported(self): # register dataset org = create_organization_with_details('organization-one') volunteer = create_volunteer() volunteer.organization = org volunteer.save() # register event first to create job event = ['Hackathon', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) # create job job = ['Developer', '2017-08-21', '2017-08-30', '',created_event] created_job = create_job_with_details(job) # create shift shift = ['2017-08-21', '09:00', '15:00', '10', created_job] created_shift = create_shift_with_details(shift) # 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 report_page.fill_report_form(['','','','','']) self.assertEqual(report_page.get_alert_box_text(),report_page.no_results_message)
def test_shift_sign_up_with_outdated_shifts(self): """ Test signing up for the shifts whose date have passed. """ registered_event = register_event_utility() registered_job = register_job_utility() sign_up_page = self.sign_up_page # create outdated shift shift_1 = { 'date': "2016-05-11", 'start_time': "9:00", 'end_time': "15:00", 'max_volunteers': 6, 'job': Job.objects.get(name='job'), 'address': 'shift-address', 'venue': 'shift-venue' } created_shift = create_shift_with_details(shift_1) # open Shift Sign Up sign_up_page.navigate_to_sign_up() # on event page sign_up_page.click_to_view_jobs() # on jobs page sign_up_page.click_to_view_shifts() self.assertEqual( sign_up_page.get_info_box().text, sign_up_page.get_message_shift_not_available_for_job('job'))
def register_logged_dataset(self): """ Utility function to create valid data for test. """ # Create shift and log hours e1 = create_event_with_details({ 'name': 'event', 'start_date': '2015-06-15', 'end_date': '2015-06-17', 'description': 'event-description', 'address': 'event-address', 'venue': 'event-venue' }) j1 = create_job_with_details({ 'name': 'job', 'start_date': '2015-06-15', 'end_date': '2015-06-15', 'description': 'job description', 'event': e1 }) s1 = create_shift_with_details({ 'date': '2015-06-15', 'start_time': '09:00', 'end_time': '15:00', 'max_volunteers': '6', 'job': j1, 'address': 'shift-address', 'venue': 'shift-venue' }) log_hours_with_details(self.v1, s1, '12:00', '13:00')
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 cls.j3 = j3 # job with no shifts cls.j2 = j2 # job with shift which has no slot job_4 = [ "Information Technologist", "2012-11-2", "2012-12-2", "An IT job", e1 ] cls.j4 = create_job_with_details(job_4) shift_1 = ["2012-10-23", "1:00", "3:00", 1, cls.j1] shift_2 = ["2012-10-25", "2:00", "4:00", 2, cls.j1] shift_3 = ["2012-10-24", "12:00", "18:00", 4, cls.j3] # shift with no slots shift_4 = ["2012-11-7", "12:00", "18:00", 1, cls.j4] cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) cls.s3 = create_shift_with_details(shift_3) cls.s4 = create_shift_with_details(shift_4) # creating volunteers who would register for the shifts volunteer_1 = [ 'Yoshi', "Yoshi", "Turtle", "Mario Land", "Nintendo Land", "Nintendo State", "Nintendo Nation", "2374983247", "*****@*****.**" ] volunteer_2 = [ 'John', "John", "Doe", "7 Alpine Street", "Maplegrove", "Wyoming", "USA", "23454545", "*****@*****.**" ] volunteer_3 = [ 'Ash', "Ash", "Ketchum", "Pallet Town", "Kanto", "Gameboy", "Japan", "23454545", "*****@*****.**" ] org_name = 'volunteer-organization' org_obj = create_organization_with_details(org_name) cls.v1 = create_volunteer_with_details(volunteer_1, org_obj) cls.v2 = create_volunteer_with_details(volunteer_2, org_obj) cls.v3 = create_volunteer_with_details(volunteer_3, org_obj)
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 shift_1 = { 'date': "2012-10-28", 'start_time': "9:00", 'end_time': "15:00", 'max_volunteers': 1, 'job': cls.j1, 'address': 'shift-address', 'venue': 'shift-venue' } shift_2 = { 'date': "2012-10-25", 'start_time': "10:00", 'end_time': "16:00", 'max_volunteers': 2, 'job': cls.j1, 'address': 'shift-address', 'venue': 'shift-venue' } cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) city_name = 'Roorkee' state_name = 'Uttarakhand' country_name = 'India' country = get_country_by_name(country_name) state = get_state_by_name(state_name) city = get_city_by_name(city_name) volunteer_1 = { 'username': '******', 'first_name': "Aaron", 'last_name': "Turtle", 'address': "Mario Land", 'city': city, 'state': state, 'country': country, 'phone_number': "2374983247", 'email': "*****@*****.**" } org_name = 'organization' cls.org_obj = create_organization_with_details(org_name) cls.v1 = create_volunteer_with_details(volunteer_1, cls.org_obj)
def register_dataset(self): created_event = create_event_with_details(['event-four', '2017-06-01', '2017-06-10']) created_job = create_job_with_details( ['jobOneInEventFour', '2017-06-01', '2017-06-10', 'job description', created_event] ) created_shift = create_shift_with_details(['2017-06-01', '09:00', '15:00', '10', created_job]) registered_shift = register_volunteer_for_shift_utility(created_shift, self.v1)
def create_invalid_shift(self): """ Utility function to create an invalid shift. :return: Shift type object """ shift = ['2050-05-29', '12:00:00', '09:00:00', '10', self.job] created_shift = create_shift_with_details(shift) return created_shift
def setup_test_data(cls): cls.e1 = e1 cls.j1 = j1 shift_1 = ["2012-10-28", "9:00", "15:00", 1, cls.j1] shift_2 = ["2012-10-25", "10:00", "16:00", 2, cls.j1] cls.s1 = create_shift_with_details(shift_1) cls.s2 = create_shift_with_details(shift_2) volunteer_1 = [ 'Aaron', "Aaron", "Turtle", "Mario Land", "Nintendo Land", "Nintendo State", "Nintendo Nation", "2374983247", "*****@*****.**" ] org_name = 'organization' cls.org_obj = create_organization_with_details(org_name) cls.v1 = create_volunteer_with_details(volunteer_1, cls.org_obj)
def register_dataset(): """ Utility function to create data for testing :return: Shift type of object. """ e1 = create_event_with_details(['event', '2050-06-15', '2050-06-17']) j1 = create_job_with_details( ['job', '2050-06-15', '2050-06-15', 'job description', e1]) s1 = create_shift_with_details( ['2050-06-15', '09:00', '15:00', '6', j1]) return s1
def test_max_volunteer_field(self): self.settings.go_to_events_page() settings = self.settings settings.live_server_url = self.live_server_url event = ['event-name', '2050-05-24', '2050-05-28'] created_event = create_event_with_details(event) job = ['job', '2050-05-24', '2050-05-28', '', created_event] created_job = create_job_with_details(job) settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() invalid_shift = ['01/01/2018', '12:00', '11:00', '0'] settings.fill_shift_form(invalid_shift) # Check error message self.wait.until( EC.presence_of_element_located( (By.XPATH, "//form//div[7]/div/p/strong[contains(text()," "'Ensure this value is greater than or equal to 1.')]") ) ) self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.') # Create shift and edit with 0 value shift = ['2050-05-24', '09:00', '12:00', '10', created_job] create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() settings.fill_shift_form(invalid_shift) # Check error message self.wait.until( EC.presence_of_element_located( (By.XPATH, "//form//div[7]/div/p/strong[contains(text()," "'Ensure this value is greater than or equal to 1.')]") ) ) self.assertEqual(settings.get_shift_max_volunteer_error(), 'Ensure this value is greater than or equal to 1.')
def setup_test_data(cls): event_1 = ["Software Conference","2012-10-3","2012-10-24"] cls.e1 = create_event_with_details(event_1) job_1 = ["Software Developer","2012-10-22","2012-10-23","A software job",e1] job_2 = ["Systems Administrator","2012-10-8","2012-10-16","A systems administrator job",e1] cls.j1 = create_job_with_details(job_1) cls.j2 = create_job_with_details(job_2) shift_1 = ["2012-10-23","1:00","3:00",1,cls.j1] cls.s1 = create_shift_with_details(shift_1)
def create_shift(self, shift): # register event to create job event = ['event-name', '2017-05-20', '2017-05-20'] e1 = create_event_with_details(event) # create job to create shift job = ['job name', '2017-05-20', '2017-05-20', 'job description', e1] j1 = create_job_with_details(job) # create shift to assign shift_1 = ['2017-05-20', shift[0], shift[1], shift[2], j1] s1 = create_shift_with_details(shift_1) return s1
def register_dataset(self): """ Utility function to create valid data for test. """ # Create shift and log hours e1 = create_event_with_details( ['event', '2050-06-15', '2050-06-17'] ) j1 = create_job_with_details( ['job', '2050-06-15', '2050-06-15', 'job description', e1] ) s1 = create_shift_with_details( ['2050-06-15', '09:00', '15:00', '6', j1] ) log_hours_with_details(self.v1, s1, '12:00', '13:00')
def create_shift(shift): """ Utility function to create a valid shift. :param shift: Iterable containing details of shift. :return: Shift type object. """ # Register event to create job event = ['event-name', '2050-05-20', '2050-05-20'] e1 = create_event_with_details(event) # Create job to create shift job = ['job name', '2050-05-20', '2050-05-20', 'job description', e1] j1 = create_job_with_details(job) # Create shift to assign shift_1 = ['2050-05-20', shift[0], shift[1], shift[2], j1] s1 = create_shift_with_details(shift_1) return s1
def test_field_value_retention_for_shift(self): event = ['event-name', '2017-08-21', '2017-09-28'] created_event = create_event_with_details(event) job = ['job', '2017-08-21', '2017-08-21', '',created_event] created_job = create_job_with_details(job) settings = self.settings settings.live_server_url = self.live_server_url settings.navigate_to_shift_list_view() settings.go_to_create_shift_page() invalid_shift = ['01/01/2016', '12:00', '11:00', '10'] settings.fill_shift_form(invalid_shift) # verify that shift was not created and that field values are not # erased # self.check_shift_form_values(invalid_shift) # database check to ensure that shift was not created self.assertEqual(len(Shift.objects.all()), 0) # now create shift and edit it # verify that shift was not edited and that field values are not # erased shift = ['2017-08-21', '09:00', '12:00', '10', created_job] created_shift = create_shift_with_details(shift) settings.navigate_to_shift_list_view() settings.go_to_edit_shift_page() settings.fill_shift_form(invalid_shift) # verify that shift was not created and that field values are not # erased # self.check_shift_form_values(invalid_shift) # database check to ensure that shift was not edited self.assertEqual(len(Shift.objects.all()), 1) self.assertNotEqual(len(Shift.objects.filter(date=created_shift.date)), 0)
def register_dataset(self): e1 = create_event_with_details(['event', '2017-06-15', '2017-06-17']) j1 = create_job_with_details(['job', '2017-06-15', '2017-06-15', 'job description', e1]) s1 = create_shift_with_details(['2017-06-15', '09:00', '15:00', '6', j1]) return s1
def create_shift(self): shift = ['2015-05-24', '09:00:00', '12:00:00', '10', self.job] created_shift = create_shift_with_details(shift) return created_shift