Skip to content
Snippets Groups Projects
Unverified Commit 202e9904 authored by Agha Awais's avatar Agha Awais Committed by GitHub
Browse files

Merge pull request #18686 from edx/awais/lett_2_bc_grading_II

Grading bokchoy tests II
parents d9e84129 e6a63b56
No related branches found
No related tags found
No related merge requests found
......@@ -2,32 +2,6 @@
Feature: CMS.Course Grading
As a course author, I want to be able to configure how my course is graded
# Cannot reliably make the delete button appear so using javascript instead
Scenario: Users can delete grading ranges
Given I have opened a new course in Studio
And I am viewing the grading settings
When I add "1" new grade
And I delete a grade
Then I see I now have "2" grades
# IE and Safari cannot reliably drag and drop through selenium
@skip_internetexplorer
@skip_safari
Scenario: Users can move grading ranges
Given I have opened a new course in Studio
And I am viewing the grading settings
When I move a grading section
Then I see that the grade range has changed
Scenario: Users can modify Assignment types
Given I have populated a new course in Studio
And I am viewing the grading settings
When I change assignment type "Homework" to "New Type"
And I press the "Save" notification button
And I go back to the main course page
Then I do see the assignment name "New Type"
And I do not see the assignment name "Homework"
Scenario: Users can delete Assignment types
Given I have populated a new course in Studio
And I am viewing the grading settings
......
......@@ -5,6 +5,7 @@ Course Grading Settings page.
from common.test.acceptance.pages.studio.settings import SettingsPage
from common.test.acceptance.pages.studio.utils import press_the_notification_button
from common.test.acceptance.pages.common.utils import click_css
from selenium.webdriver import ActionChains
from bok_choy.promise import BrokenPromise
......@@ -67,6 +68,15 @@ class GradingPage(SettingsPage):
while len(self.q(css='.remove-button')) > 0:
self.remove_grade()
def drag_and_drop_grade(self):
"""
Drag and drop grade range.
"""
self.wait_for_element_visibility(self.grade_ranges, "Grades ranges are visible")
action = ActionChains(self.browser)
moveable_css = self.q(css='.ui-resizable-e').results[0]
action.drag_and_drop_by_offset(moveable_css, 100, 0).perform()
@property
def grade_letters(self):
"""
......@@ -104,6 +114,15 @@ class GradingPage(SettingsPage):
self.q(css='.add-grading-data').click()
self.save_changes()
@property
def grades_range(self):
"""
Get ranges of all the grades.
Returns: A list containing ranges of all the grades
"""
self.wait_for_element_visibility('.range', 'Ranges are visible')
return self.q(css='.range').text
def fill_assignment_type_fields(
self,
name,
......
......@@ -93,3 +93,40 @@ class GradingPageTest(StudioCourseTest):
self.grading_page.save()
grades_alphabets = self.grading_page.grade_letters
self.assertEqual(grades_alphabets, ['A', 'B', 'F'])
def test_staff_can_delete_grade_range(self):
"""
Scenario: Users can delete grading ranges
Given I have opened a new course in Studio
And I am viewing the grading settings
When I add "1" new grade
And I delete a grade
Then I see I now have "2" grades
"""
length = self.grading_page.total_number_of_grades
self.grading_page.click_add_grade()
self.assertTrue(self.grading_page.is_grade_added(length))
self.grading_page.save()
total_number_of_grades = self.grading_page.total_number_of_grades
self.assertEqual(total_number_of_grades, 3)
self.grading_page.remove_grades(1)
total_number_of_grades = self.grading_page.total_number_of_grades
self.assertEqual(total_number_of_grades, 2)
def test_staff_can_move_grading_ranges(self):
"""
Scenario: Users can move grading ranges
Given I have opened a new course in Studio
And I am viewing the grading settings
When I move a grading section
Then I see that the grade range has changed
"""
grade_ranges = self.grading_page.grades_range
self.assertIn('0-50', grade_ranges)
self.grading_page.drag_and_drop_grade()
grade_ranges = self.grading_page.grades_range
self.assertIn(
'0-3',
grade_ranges,
'expected range: 0-3, not found in grade ranges:{}'.format(grade_ranges)
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment