Ejemplo n.º 1
0
    def test_view_with_logged_hours(self):
        """
        Test display of shift details with hours logged in the shift.
        """
        shift_details_page = self.shift_details_page
        shift_details_page.live_server_url = self.live_server_url
        org_obj = create_organization_with_details(self.org_detail)
        volunteer = create_volunteer_with_details(self.volunteer_detail, org_obj)
        log_hours_with_details(volunteer, self.shift, '13:00', '14:00')

        self.wait_for_home_page()

        shift_details_page.navigate_to_shift_details_view()

        # verify that the shift slot is decreased by 1
        self.assertEqual(shift_details_page.get_shift_job(), 'job')
        self.assertEqual(shift_details_page.get_max_shift_volunteer(), '5')

        # verify that assigned volunteers shows up
        self.assertEqual(len(shift_details_page.get_registered_volunteers()), 1)
        self.assertEqual(shift_details_page.get_registered_volunteer_email(), '*****@*****.**')

        # verify that hours are logged by volunteer
        self.assertEqual(len(shift_details_page.get_logged_volunteers()), 1)
        self.assertEqual(shift_details_page.get_logged_volunteer_name(), 'Michael')
        self.assertEqual(shift_details_page.get_logged_start_time(), '1 p.m.')
        self.assertEqual(shift_details_page.get_logged_end_time(), '2 p.m.')
Ejemplo n.º 2
0
    def test_view_with_logged_hours(self):
        """
        Test display of shift details with hours logged in the shift.
        """
        shift_details_page = self.shift_details_page
        shift_details_page.live_server_url = self.live_server_url
        org_obj = create_organization_with_details(self.org_detail)
        volunteer = create_volunteer_with_details(self.volunteer_detail,
                                                  org_obj)
        log_hours_with_details(volunteer, self.shift, '13:00', '14:00')

        self.wait_for_home_page()

        shift_details_page.navigate_to_shift_details_view()

        # verify that the shift slot is decreased by 1
        self.assertEqual(shift_details_page.get_shift_job(), 'job')
        self.assertEqual(shift_details_page.get_max_shift_volunteer(), '5')

        # verify that assigned volunteers shows up
        self.assertEqual(len(shift_details_page.get_registered_volunteers()),
                         1)
        self.assertEqual(shift_details_page.get_registered_volunteer_email(),
                         '*****@*****.**')

        # verify that hours are logged by volunteer
        self.assertEqual(len(shift_details_page.get_logged_volunteers()), 1)
        self.assertEqual(shift_details_page.get_logged_volunteer_name(),
                         'Michael')
        self.assertEqual(shift_details_page.get_logged_start_time(), '1 p.m.')
        self.assertEqual(shift_details_page.get_logged_end_time(), '2 p.m.')
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
    def register_dataset(self):

        # create shift and log hours
        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])
        log_hours_with_details(self.v1, s1, '12:00', '13:00')
Ejemplo n.º 5
0
 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')
Ejemplo n.º 6
0
    def test_edit_request_email_volunteer(self):
        """
        checks if the volunteer gets an email when his hours are edited
        by admin upon his request
        """

        volunteer_1 = create_volunteer()

        shift = {
            'date': '2050-05-20',
            'start_time': '09:00',
            'end_time': '15:00',
            'max_volunteers': '1',
            'address': 'shift-address',
            'venue': 'venue-address',
        }
        shift_1 = self.create_shift(shift)
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=14, minute=0)
        logged_shift = log_hours_with_details(volunteer_1, shift_1, start, end)
        start_time = datetime.time(hour=9, minute=30)
        end_time = datetime.time(hour=14, minute=0)
        edit_request = \
            create_edit_request_with_details(start_time, end_time, logged_shift)
        vol_email = volunteer_1.email
        mail.outbox = []
        mail.send_mail("Log Hours Edited", "message",
                       "*****@*****.**", [vol_email])
        self.assertEqual(len(mail.outbox), 1)
        msg = mail.outbox[0]
        self.assertEqual(msg.subject, "Log Hours Edited")
        self.assertEqual(msg.to, ['*****@*****.**'])
Ejemplo n.º 7
0
    def test_shift_edit_request(self):
        """
        checks the edit request link received by admin
        """

        volunteer_1 = create_volunteer()

        shift = {
            'date': '2050-05-20',
            'start_time': '09:00',
            'end_time': '15:00',
            'max_volunteers': '1',
            'address': 'shift-address',
            'venue': 'venue-address',
        }
        shift_1 = self.create_shift(shift)
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=14, minute=0)
        logged_shift = log_hours_with_details(volunteer_1, shift_1, start, end)
        start_time = datetime.time(hour=9, minute=30)
        end_time = datetime.time(hour=14, minute=0)
        edit_request = \
            create_edit_request_with_details(start_time, end_time, logged_shift)
        response = self.client.get(
            reverse('shift:edit_request_manager',
                    args=[shift_1.id, volunteer_1.id, edit_request.id]))
        self.assertEqual(response.status_code, 302)
Ejemplo n.º 8
0
    def test_check_volunteer_reports(self):
        search_page = self.search_page
        search_page.live_server_url = self.live_server_url
        credentials_1 = [
            'volunteer-username', 'volunteer-first-name',
            'VOLUNTEER-LAST-NAME', 'volunteer-address', 'volunteer-city',
            'volunteer-state', 'volunteer-country', '9999999999',
            '*****@*****.**'
        ]
        org_name = 'volunteer-organization'
        org_obj = create_organization_with_details(org_name)
        vol = create_volunteer_with_details(credentials_1, org_obj)

        register_past_event_utility()
        register_past_job_utility()
        shift = register_past_shift_utility()
        start=datetime.time(hour=10, minute=0)
        end=datetime.time(hour=11, minute=0)
        logged_shift = log_hours_with_details(vol, shift, start, end)
        report = create_report_with_details(vol, logged_shift)
        report.confirm_status = 1
        report.save()

        search_page.navigate_to_volunteer_search_page()
        search_page.submit_form()

        self.assertEqual(search_page.element_by_xpath(self.elements.VIEW_REPORTS).text, 'View')
        search_page.element_by_xpath(self.elements.VIEW_REPORTS + '//a').click()
        self.assertEqual(search_page.remove_i18n(self.driver.current_url), self.live_server_url + PageUrls.volunteer_history_page + str(vol.id))
        self.verify_report_details('1')
Ejemplo n.º 9
0
 def test_check_report_volunteer(self):
     self.report_page.go_to_admin_report()
     country = create_country()
     state = create_state()
     city = create_city()
     credentials = {
         'username': '******',
         'first_name': 'VOLUNTEER-FIRST-NAME',
         'last_name': 'volunteer-last-name',
         'address': 'volunteer-address',
         'city': city,
         'state': state,
         'country': country,
         'phone_number': '9999999999',
         'email': '*****@*****.**'
     }
     org_name = 'volunteer-organization'
     org_obj = create_organization_with_details(org_name)
     vol = create_volunteer_with_details(credentials, org_obj)
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start = datetime.time(hour=10, minute=0)
     end = datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url,
                          PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_volunteer_name(),
                      'VOLUNTEER-FIRST-NAME volunteer-last-name')
Ejemplo n.º 10
0
    def test_get_report_by_id(self):
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=12, minute=0)
        logged_shift_1 = log_hours_with_details(self.v1, self.s1, start, end)
        r1 = create_report_with_details(self.v1, logged_shift_1)

        logged_shift_2 = log_hours_with_details(self.v2, self.s2, start, end)
        r2 = create_report_with_details(self.v2, logged_shift_2)

        self.assertIsNotNone(get_report_by_id(r1.id))
        self.assertIsNotNone(get_report_by_id(r2.id))

        self.assertEqual(get_report_by_id(r1.id), r1)
        self.assertEqual(get_report_by_id(r2.id), r2)

        # test non-existant cases
        self.assertIsNone(get_report_by_id(100))
        self.assertIsNone(get_report_by_id(200))
Ejemplo n.º 11
0
    def test_get_report_by_id(self):
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=12, minute=0)
        logged_shift_1 = log_hours_with_details(self.v1, self.s1, start, end)
        r1 = create_report_with_details(self.v1, logged_shift_1)

        logged_shift_2 = log_hours_with_details(self.v2, self.s2, start, end)
        r2 = create_report_with_details(self.v2, logged_shift_2)

        self.assertIsNotNone(get_report_by_id(r1.id))
        self.assertIsNotNone(get_report_by_id(r2.id))

        self.assertEqual(get_report_by_id(r1.id), r1)
        self.assertEqual(get_report_by_id(r2.id), r2)

        # test non-existant cases
        self.assertIsNone(get_report_by_id(100))
        self.assertIsNone(get_report_by_id(200))
Ejemplo n.º 12
0
    def test_view_with_logged_hours(self):
        shift_details_page = self.shift_details_page
        shift_details_page.live_server_url = self.live_server_url
        volunteer = create_volunteer_with_details(self.volunteer_detail)
        log_hours_with_details(volunteer, self.shift, '13:00', '14:00')
        shift_details_page.navigate_to_shift_details_view()

        # verify that the shift slot is decreased by 1
        self.assertEqual(shift_details_page.get_shift_job(), 'job')
        self.assertEqual(shift_details_page.get_max_shift_volunteer(), '5')

        # verify that assigned volunteers shows up
        self.assertEqual(len(shift_details_page.get_registered_volunteers()), 1)
        self.assertEqual(shift_details_page.get_registered_volunteer_email(), '*****@*****.**')

        # verify that hours are logged by volunteer
        self.assertEqual(len(shift_details_page.get_logged_volunteers()), 1)
        self.assertEqual(shift_details_page.get_logged_volunteer_name(), 'Michael')
        self.assertEqual(shift_details_page.get_logged_start_time(), '1 p.m.')
        self.assertEqual(shift_details_page.get_logged_end_time(), '2 p.m.')
Ejemplo n.º 13
0
 def test_check_report_hours(self):
     self.report_page.go_to_admin_report()
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start=datetime.time(hour=10, minute=0)
     end=datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url, PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_hours(), '1.00')
Ejemplo n.º 14
0
 def create_edit_request(volunteer, shift):
     """
     Utility function to create a valid edit request.
     :param volunteer: The volunteer who makes a request for editing hours
     :param shift: Volunteer's logged shift which is to be edited
     :return: EditRequest type object
     """
     start = datetime.time(hour=9, minute=0, second=0)
     end = datetime.time(hour=12, minute=0, second=0)
     logged_shift = log_hours_with_details(volunteer, shift, start, end)
     start_time = datetime.time(hour=10, minute=0, second=0)
     end_time = datetime.time(hour=12, minute=0, second=0)
     return create_edit_request_with_details(start_time, end_time, logged_shift)
Ejemplo n.º 15
0
    def test_view_with_logged_hours(self):
        shift_details_page = self.shift_details_page
        shift_details_page.live_server_url = self.live_server_url
        volunteer = create_volunteer_with_details(self.volunteer_detail)
        log_hours_with_details(volunteer, self.shift, '13:00', '14:00')
        shift_details_page.navigate_to_shift_details_view()

        # verify that the shift slot is decreased by 1
        self.assertEqual(shift_details_page.get_shift_job(), 'job')
        self.assertEqual(shift_details_page.get_max_shift_volunteer(), '5')

        # verify that assigned volunteers shows up
        self.assertEqual(len(shift_details_page.get_registered_volunteers()),
                         1)
        self.assertEqual(shift_details_page.get_registered_volunteer_email(),
                         '*****@*****.**')

        # verify that hours are logged by volunteer
        self.assertEqual(len(shift_details_page.get_logged_volunteers()), 1)
        self.assertEqual(shift_details_page.get_logged_volunteer_name(),
                         'Michael')
        self.assertEqual(shift_details_page.get_logged_start_time(), '1 p.m.')
        self.assertEqual(shift_details_page.get_logged_end_time(), '2 p.m.')
Ejemplo n.º 16
0
 def test_check_report_hours(self):
     self.report_page.go_to_admin_report()
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start = datetime.time(hour=10, minute=0)
     end = datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url,
                          PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_hours(), '1.00')
Ejemplo n.º 17
0
 def test_reject_report(self):
     self.report_page.go_to_admin_report()
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start=datetime.time(hour=10, minute=0)
     end=datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url, PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_rejection_context(), 'Reject')
     report_page.reject_report()
     with self.assertRaises(NoSuchElementException):
         report_page.get_report()
Ejemplo n.º 18
0
 def test_reject_report(self):
     self.report_page.go_to_admin_report()
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start = datetime.time(hour=10, minute=0)
     end = datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url,
                          PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_rejection_context(), 'Reject')
     report_page.reject_report()
     with self.assertRaises(NoSuchElementException):
         report_page.get_report()
Ejemplo n.º 19
0
    def test_shift_edit_request(self):
        """
        checks the edit request link received by admin
        """
        org_obj = create_organization_with_details(self.org_name)
        volunteer_1 = create_volunteer_with_details(self.volunteer_1, org_obj)

        shift = ['09:00', '15:00', '1']
        shift_1 = self.create_shift(shift)
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=14, minute=0)
        logged_shift = log_hours_with_details(volunteer_1, shift_1, start, end)
        start_time = datetime.time(hour=9, minute=30)
        end_time = datetime.time(hour=14, minute=0)
        edit_request = create_edit_request_with_details(start_time, end_time, logged_shift)
        response = self.client.get(reverse('shift:edit_request_manager', args=[shift_1.id, volunteer_1.id, edit_request.id]))
        self.assertEqual(response.status_code, 302)
Ejemplo n.º 20
0
 def test_email_on_report_approval(self):
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start = datetime.time(hour=10, minute=0)
     end = datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     report = create_report_with_details(vol, logged_shift)
     mail.send_mail("Report Approved", "message", "*****@*****.**",
                    [vol.email])
     self.assertEqual(len(mail.outbox), 1)
     msg = mail.outbox[0]
     self.assertEqual(msg.subject, 'Report Approved')
     self.assertEqual(msg.to, ['*****@*****.**'])
     response = self.client.get('/administrator/report/approve/%s' %
                                report.id)
     self.assertEqual(response.status_code, 302)
Ejemplo n.º 21
0
 def test_check_report_volunteer(self):
     self.report_page.go_to_admin_report()
     credentials = [
         'volunteer-username', 'VOLUNTEER-FIRST-NAME',
         'volunteer-last-name', 'volunteer-address', 'volunteer-city',
         'volunteer-state', 'volunteer-country', '9999999999',
         '*****@*****.**'
     ]
     org_name = 'volunteer-organization'
     org_obj = create_organization_with_details(org_name)
     vol = create_volunteer_with_details(credentials, org_obj)
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start=datetime.time(hour=10, minute=0)
     end=datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url, PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_volunteer_name(), 'VOLUNTEER-FIRST-NAME volunteer-last-name')
Ejemplo n.º 22
0
 def test_email_on_reject_report(self):
     self.report_page.go_to_admin_report()
     vol = create_volunteer()
     register_past_event_utility()
     register_past_job_utility()
     shift = register_past_shift_utility()
     start = datetime.time(hour=10, minute=0)
     end = datetime.time(hour=11, minute=0)
     logged_shift = log_hours_with_details(vol, shift, start, end)
     create_report_with_details(vol, logged_shift)
     report_page = self.report_page
     report_page.get_page(self.live_server_url,
                          PageUrls.administrator_report_page)
     self.assertEqual(report_page.get_rejection_context(), 'Reject')
     report_page.reject_report()
     mail.outbox = []
     mail.send_mail("Report Rejected", "message", "*****@*****.**",
                    [vol.email])
     self.assertEqual(len(mail.outbox), 1)
     msg = mail.outbox[0]
     self.assertEqual(msg.subject, 'Report Rejected')
     self.assertEqual(msg.to, ['*****@*****.**'])
Ejemplo n.º 23
0
    def test_edit_request_email_volunteer(self):
        """
        checks if the volunteer gets an email when his hours are edited
        by admin upon his request
        """
        org_obj = create_organization_with_details(self.org_name)
        volunteer_1 = create_volunteer_with_details(self.volunteer_1, org_obj)

        shift = ['09:00', '15:00', '1']
        shift_1 = self.create_shift(shift)
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=14, minute=0)
        logged_shift = log_hours_with_details(volunteer_1, shift_1, start, end)
        start_time = datetime.time(hour=9, minute=30)
        end_time = datetime.time(hour=14, minute=0)
        edit_request = create_edit_request_with_details(start_time, end_time, logged_shift)
        vol_email = volunteer_1.email
        mail.outbox = []
        mail.send_mail("Log Hours Edited", "message", "*****@*****.**", [vol_email])
        self.assertEqual(len(mail.outbox), 1)
        msg = mail.outbox[0]
        self.assertEqual(msg.subject, "Log Hours Edited")
        self.assertEqual(msg.to, ['*****@*****.**'])
Ejemplo n.º 24
0
    def test_clear_hours(self):
        """
        Test clearing of shift hours.
        """
        manage_shift_page = self.manage_shift_page
        self.manage_shift_page.live_server_url = self.live_server_url

        volunteer_1 = create_volunteer()

        shift = {
            'date': '2050-05-20',
            'start_time': '09:00',
            'end_time': '15:00',
            'max_volunteers': '1',
            'address': 'shift-address',
            'venue': 'venue-address',
        }
        shift_1 = self.create_shift(shift)
        start = datetime.time(hour=10, minute=0)
        end = datetime.time(hour=14, minute=0)
        logged_shift = log_hours_with_details(volunteer_1, shift_1, start, end)

        self.wait_for_home_page()

        # Open manage volunteer shift
        manage_shift_page.navigate_to_manage_shift_page()

        manage_shift_page.select_volunteer(1)

        self.assertEqual(manage_shift_page.get_clear_shift_hours_text(),
                         'Clear Hours')
        manage_shift_page.click_to_clear_hours()
        manage_shift_page.submit_form()
        self.assertEqual(
            manage_shift_page.get_logged_info_box(),
            "This volunteer does not have any shifts with logged hours.")
Ejemplo n.º 25
0
 def create_report(volunteer, shift):
     start = datetime.time(hour=9, minute=0)
     end = datetime.time(hour=12, minute=0)
     logged_shift = log_hours_with_details(volunteer, shift, start, end)
     return create_report_with_details(volunteer, logged_shift)