Merge pull request #5969 from edx/muhhshoaib/WL-124-front-end-tests-for-auto-enrollment
muhhshoaib/wl 124 add front end tests for autoenrollment
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
End-to-end tests for the LMS Instructor Dashboard.
|
||||
"""
|
||||
|
||||
from ..helpers import UniqueCourseTest
|
||||
from ...pages.lms.auto_auth import AutoAuthPage
|
||||
from ...pages.lms.instructor_dashboard import InstructorDashboardPage
|
||||
from ...fixtures.course import CourseFixture
|
||||
|
||||
|
||||
class AutoEnrollmentWithCSVTest(UniqueCourseTest):
|
||||
"""
|
||||
End-to-end tests for Auto-Registration and enrollment functionality via CSV file.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(AutoEnrollmentWithCSVTest, self).setUp()
|
||||
self.course_fixture = CourseFixture(**self.course_info).install()
|
||||
|
||||
# login as an instructor
|
||||
AutoAuthPage(self.browser, course_id=self.course_id, staff=True).visit()
|
||||
|
||||
# go to the membership page on the instructor dashboard
|
||||
instructor_dashboard_page = InstructorDashboardPage(self.browser, self.course_id)
|
||||
instructor_dashboard_page.visit()
|
||||
self.auto_enroll_section = instructor_dashboard_page.select_membership().select_auto_enroll_section()
|
||||
|
||||
def test_browse_and_upload_buttons_are_visible(self):
|
||||
"""
|
||||
Scenario: On the Membership tab of the Instructor Dashboard, Auto-Enroll Browse and Upload buttons are visible.
|
||||
Given that I am on the Membership tab on the Instructor Dashboard
|
||||
Then I see the 'REGISTER/ENROLL STUDENTS' section on the page with the 'Browse' and 'Upload' buttons
|
||||
"""
|
||||
self.assertTrue(self.auto_enroll_section.is_file_attachment_browse_button_visible())
|
||||
self.assertTrue(self.auto_enroll_section.is_upload_button_visible())
|
||||
|
||||
def test_clicking_file_upload_button_without_file_shows_error(self):
|
||||
"""
|
||||
Scenario: Clicking on the upload button without specifying a CSV file results in error.
|
||||
Given that I am on the Membership tab on the Instructor Dashboard
|
||||
When I click the Upload Button without specifying a CSV file
|
||||
Then I should be shown an Error Notification
|
||||
And The Notification message should read 'File is not attached.'
|
||||
"""
|
||||
self.auto_enroll_section.click_upload_file_button()
|
||||
self.assertTrue(self.auto_enroll_section.is_notification_displayed(section_type=self.auto_enroll_section.NOTIFICATION_ERROR))
|
||||
self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_ERROR), "File is not attached.")
|
||||
|
||||
def test_uploading_correct_csv_file_results_in_success(self):
|
||||
"""
|
||||
Scenario: Uploading a CSV with correct data results in Success.
|
||||
Given that I am on the Membership tab on the Instructor Dashboard
|
||||
When I select a csv file with correct data and click the Upload Button
|
||||
Then I should be shown a Success Notification.
|
||||
"""
|
||||
self.auto_enroll_section.upload_correct_csv_file()
|
||||
self.assertTrue(self.auto_enroll_section.is_notification_displayed(section_type=self.auto_enroll_section.NOTIFICATION_SUCCESS))
|
||||
|
||||
def test_uploading_csv_file_with_bad_data_results_in_errors_and_warnings(self):
|
||||
"""
|
||||
Scenario: Uploading a CSV with incorrect data results in error and warnings.
|
||||
Given that I am on the Membership tab on the Instructor Dashboard
|
||||
When I select a csv file with incorrect data and click the Upload Button
|
||||
Then I should be shown an Error Notification
|
||||
And a corresponding Error Message.
|
||||
And I should be shown a Warning Notification
|
||||
And a corresponding Warning Message.
|
||||
"""
|
||||
self.auto_enroll_section.upload_csv_file_with_errors_warnings()
|
||||
self.assertTrue(self.auto_enroll_section.is_notification_displayed(section_type=self.auto_enroll_section.NOTIFICATION_ERROR))
|
||||
self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_ERROR), "Data in row #2 must have exactly four columns: email, username, full name, and country")
|
||||
self.assertTrue(self.auto_enroll_section.is_notification_displayed(section_type=self.auto_enroll_section.NOTIFICATION_WARNING))
|
||||
self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_WARNING), "ename (d@a.com): (An account with email d@a.com exists but the provided username ename is different. Enrolling anyway with d@a.com.)")
|
||||
|
||||
def test_uploading_non_csv_file_results_in_error(self):
|
||||
"""
|
||||
Scenario: Uploading an image file for auto-enrollment results in error.
|
||||
Given that I am on the Membership tab on the Instructor Dashboard
|
||||
When I select an image file (a non-csv file) and click the Upload Button
|
||||
Then I should be shown an Error Notification
|
||||
And The Notification message should read 'Could not read uploaded file.'
|
||||
"""
|
||||
self.auto_enroll_section.upload_non_csv_file()
|
||||
self.assertTrue(self.auto_enroll_section.is_notification_displayed(section_type=self.auto_enroll_section.NOTIFICATION_ERROR))
|
||||
self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_ERROR), "Could not read uploaded file.")
|
||||
Reference in New Issue
Block a user