Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
f31475a2
Commit
f31475a2
authored
10 years ago
by
Ben McMorran
Committed by
cahrens
10 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add bokchoy tests for outline page
parent
327a97f7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
239 additions
and
130 deletions
+239
-130
cms/static/js/views/course_outline.js
+1
-0
cms/static/js/views/pages/container.js
+1
-1
cms/static/js/views/xblock_outline.js
+1
-1
common/test/acceptance/pages/studio/container.py
+12
-12
common/test/acceptance/pages/studio/overview.py
+173
-25
common/test/acceptance/pages/studio/utils.py
+11
-0
common/test/acceptance/tests/test_studio_container.py
+22
-24
common/test/acceptance/tests/test_studio_general.py
+0
-51
common/test/acceptance/tests/test_studio_outline.py
+0
-0
common/test/acceptance/tests/test_studio_split_test.py
+18
-16
No files found.
cms/static/js/views/course_outline.js
View file @
f31475a2
...
@@ -125,6 +125,7 @@ define(["jquery", "underscore", "js/views/xblock_outline", "js/views/utils/view_
...
@@ -125,6 +125,7 @@ define(["jquery", "underscore", "js/views/xblock_outline", "js/views/utils/view_
// as it cannot visually effect the other sections.
// as it cannot visually effect the other sections.
if
(
childCategory
===
'chapter'
&&
children
&&
children
.
length
>
1
)
{
if
(
childCategory
===
'chapter'
&&
children
&&
children
.
length
>
1
)
{
childView
.
$el
.
remove
();
childView
.
$el
.
remove
();
children
.
splice
(
children
.
indexOf
(
childView
.
model
),
1
);
}
else
{
}
else
{
this
.
refresh
();
this
.
refresh
();
}
}
...
...
This diff is collapsed.
Click to expand it.
cms/static/js/views/pages/container.js
View file @
f31475a2
...
@@ -22,7 +22,7 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views
...
@@ -22,7 +22,7 @@ define(["jquery", "underscore", "gettext", "js/views/pages/base_page", "js/views
});
});
this
.
nameEditor
.
render
();
this
.
nameEditor
.
render
();
if
(
this
.
options
.
action
===
'new'
)
{
if
(
this
.
options
.
action
===
'new'
)
{
this
.
nameEditor
.
$
(
'.xblock-field-value'
).
click
();
this
.
nameEditor
.
$
(
'.xblock-field-value
-edit
'
).
click
();
}
}
this
.
xblockView
=
new
ContainerView
({
this
.
xblockView
=
new
ContainerView
({
el
:
this
.
$
(
'.wrapper-xblock'
),
el
:
this
.
$
(
'.wrapper-xblock'
),
...
...
This diff is collapsed.
Click to expand it.
cms/static/js/views/xblock_outline.js
View file @
f31475a2
...
@@ -194,7 +194,7 @@ define(["jquery", "underscore", "gettext", "js/views/baseview", "js/views/utils/
...
@@ -194,7 +194,7 @@ define(["jquery", "underscore", "gettext", "js/views/baseview", "js/views/utils/
}
}
ViewUtils
.
setScrollOffset
(
locatorElement
,
scrollOffset
);
ViewUtils
.
setScrollOffset
(
locatorElement
,
scrollOffset
);
if
(
editDisplayName
)
{
if
(
editDisplayName
)
{
locatorElement
.
find
(
'> .wrapper-xblock-header .xblock-field-value'
).
click
();
locatorElement
.
find
(
'> .wrapper-xblock-header .xblock-field-value
-edit
'
).
click
();
}
}
}
}
this
.
initialState
=
null
;
this
.
initialState
=
null
;
...
...
This diff is collapsed.
Click to expand it.
common/test/acceptance/pages/studio/container.py
View file @
f31475a2
...
@@ -8,7 +8,7 @@ from . import BASE_URL
...
@@ -8,7 +8,7 @@ from . import BASE_URL
from
selenium.webdriver.common.action_chains
import
ActionChains
from
selenium.webdriver.common.action_chains
import
ActionChains
from
utils
import
click_css
,
wait_for_notification
from
utils
import
click_css
,
wait_for_notification
,
confirm_prompt
class
ContainerPage
(
PageObject
):
class
ContainerPage
(
PageObject
):
...
@@ -16,6 +16,8 @@ class ContainerPage(PageObject):
...
@@ -16,6 +16,8 @@ class ContainerPage(PageObject):
Container page in Studio
Container page in Studio
"""
"""
NAME_SELECTOR
=
'.page-header-title'
NAME_SELECTOR
=
'.page-header-title'
NAME_INPUT_SELECTOR
=
'.page-header .xblock-field-input'
NAME_FIELD_WRAPPER_SELECTOR
=
'.page-header .wrapper-xblock-field'
def
__init__
(
self
,
browser
,
locator
):
def
__init__
(
self
,
browser
,
locator
):
super
(
ContainerPage
,
self
)
.
__init__
(
browser
)
super
(
ContainerPage
,
self
)
.
__init__
(
browser
)
...
@@ -134,7 +136,7 @@ class ContainerPage(PageObject):
...
@@ -134,7 +136,7 @@ class ContainerPage(PageObject):
Discards draft changes (which will then re-render the page).
Discards draft changes (which will then re-render the page).
"""
"""
click_css
(
self
,
'a.action-discard'
,
0
,
require_notification
=
False
)
click_css
(
self
,
'a.action-discard'
,
0
,
require_notification
=
False
)
self
.
q
(
css
=
'a.button.action-primary'
)
.
first
.
click
(
)
confirm_prompt
(
self
)
self
.
wait_for_ajax
()
self
.
wait_for_ajax
()
def
toggle_staff_lock
(
self
):
def
toggle_staff_lock
(
self
):
...
@@ -149,7 +151,7 @@ class ContainerPage(PageObject):
...
@@ -149,7 +151,7 @@ class ContainerPage(PageObject):
self
.
q
(
css
=
'a.action-staff-lock'
)
.
first
.
click
()
self
.
q
(
css
=
'a.action-staff-lock'
)
.
first
.
click
()
else
:
else
:
click_css
(
self
,
'a.action-staff-lock'
,
0
,
require_notification
=
False
)
click_css
(
self
,
'a.action-staff-lock'
,
0
,
require_notification
=
False
)
self
.
q
(
css
=
'a.button.action-primary'
)
.
first
.
click
(
)
confirm_prompt
(
self
)
self
.
wait_for_ajax
()
self
.
wait_for_ajax
()
return
not
was_locked_initially
return
not
was_locked_initially
...
@@ -218,16 +220,8 @@ class ContainerPage(PageObject):
...
@@ -218,16 +220,8 @@ class ContainerPage(PageObject):
"""
"""
# Click the delete button
# Click the delete button
click_css
(
self
,
'a.delete-button'
,
source_index
,
require_notification
=
False
)
click_css
(
self
,
'a.delete-button'
,
source_index
,
require_notification
=
False
)
# Wait for the warning prompt to appear
self
.
wait_for_element_visibility
(
'#prompt-warning'
,
'Deletion warning prompt is visible'
)
# Make sure the delete button is there
confirmation_button_css
=
'#prompt-warning a.button.action-primary'
self
.
wait_for_element_visibility
(
confirmation_button_css
,
'Confirmation dialog button is visible'
)
# Click the confirmation dialog button
# Click the confirmation dialog button
c
lick_css
(
self
,
confirmation_button_css
,
0
)
c
onfirm_prompt
(
self
)
def
edit
(
self
):
def
edit
(
self
):
"""
"""
...
@@ -255,6 +249,12 @@ class ContainerPage(PageObject):
...
@@ -255,6 +249,12 @@ class ContainerPage(PageObject):
"""
"""
return
self
.
q
(
css
=
".xblock-message.information"
)
.
first
.
text
[
0
]
return
self
.
q
(
css
=
".xblock-message.information"
)
.
first
.
text
[
0
]
def
is_inline_editing_display_name
(
self
):
"""
Return whether this container's display name is in its editable form.
"""
return
"is-editing"
in
self
.
q
(
css
=
self
.
NAME_FIELD_WRAPPER_SELECTOR
)
.
first
.
attrs
(
"class"
)[
0
]
class
XBlockWrapper
(
PageObject
):
class
XBlockWrapper
(
PageObject
):
"""
"""
...
...
This diff is collapsed.
Click to expand it.
common/test/acceptance/pages/studio/overview.py
View file @
f31475a2
This diff is collapsed.
Click to expand it.
common/test/acceptance/pages/studio/utils.py
View file @
f31475a2
...
@@ -139,3 +139,14 @@ def set_input_value_and_save(page, css, value):
...
@@ -139,3 +139,14 @@ def set_input_value_and_save(page, css, value):
action
=
action
.
send_keys
(
Keys
.
BACKSPACE
)
action
=
action
.
send_keys
(
Keys
.
BACKSPACE
)
# Send the new text, then hit the enter key so that the change event is triggered).
# Send the new text, then hit the enter key so that the change event is triggered).
action
.
send_keys
(
value
)
.
send_keys
(
Keys
.
ENTER
)
.
perform
()
action
.
send_keys
(
value
)
.
send_keys
(
Keys
.
ENTER
)
.
perform
()
def
confirm_prompt
(
page
,
cancel
=
False
):
"""
Ensures that a modal prompt and confirmation button are visible, then clicks the button. The prompt is canceled iff
cancel is True.
"""
page
.
wait_for_element_visibility
(
'.prompt'
,
'Prompt is visible'
)
confirmation_button_css
=
'.prompt .action-'
+
(
'secondary'
if
cancel
else
'primary'
)
page
.
wait_for_element_visibility
(
confirmation_button_css
,
'Confirmation button is visible'
)
click_css
(
page
,
confirmation_button_css
,
require_notification
=
(
not
cancel
))
This diff is collapsed.
Click to expand it.
common/test/acceptance/tests/test_studio_container.py
View file @
f31475a2
...
@@ -6,18 +6,17 @@ displaying containers within units.
...
@@ -6,18 +6,17 @@ displaying containers within units.
from
nose.plugins.attrib
import
attr
from
nose.plugins.attrib
import
attr
from
..pages.studio.overview
import
CourseOutlinePage
from
..pages.studio.overview
import
CourseOutlinePage
from
..fixtures.course
import
XBlockFixtureDesc
from
..fixtures.course
import
XBlockFixtureDesc
from
..pages.studio.component_editor
import
ComponentEditorView
from
..pages.studio.component_editor
import
ComponentEditorView
from
..pages.studio.html_component_editor
import
HtmlComponentEditorView
from
..pages.studio.html_component_editor
import
HtmlComponentEditorView
from
..pages.studio.utils
import
add_discussion
from
..pages.studio.utils
import
add_discussion
from
..pages.lms.courseware
import
CoursewarePage
from
..pages.lms.courseware
import
CoursewarePage
from
..pages.lms.staff_view
import
StaffPage
from
..pages.lms.staff_view
import
StaffPage
from
unittest
import
skip
from
acceptance.tests.base_studio_test
import
StudioCourseTest
import
datetime
import
datetime
from
bok_choy.promise
import
Promise
,
EmptyPromise
from
bok_choy.promise
import
Promise
,
EmptyPromise
from
acceptance.tests.base_studio_test
import
StudioCourseTest
@attr
(
'shard_1'
)
@attr
(
'shard_1'
)
...
@@ -388,23 +387,17 @@ class UnitPublishingTest(ContainerBase):
...
@@ -388,23 +387,17 @@ class UnitPublishingTest(ContainerBase):
LAST_PUBLISHED
=
'Last published'
LAST_PUBLISHED
=
'Last published'
LAST_SAVED
=
'Draft saved on'
LAST_SAVED
=
'Draft saved on'
def
setup_fixtures
(
self
):
def
populate_course_fixture
(
self
,
course_fixture
):
"""
"""
Sets up a course structure with a unit and a single HTML child.
Sets up a course structure with a unit and a single HTML child.
"""
"""
self
.
html_content
=
'<p><strong>Body of HTML Unit.</strong></p>'
self
.
html_content
=
'<p><strong>Body of HTML Unit.</strong></p>'
self
.
courseware
=
CoursewarePage
(
self
.
browser
,
self
.
course_id
)
self
.
courseware
=
CoursewarePage
(
self
.
browser
,
self
.
course_id
)
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
past_start_date
=
datetime
.
datetime
(
1974
,
6
,
22
)
past_start_date
=
datetime
.
datetime
(
1974
,
6
,
22
)
self
.
past_start_date_text
=
"Jun 22, 1974 at 00:00 UTC"
self
.
past_start_date_text
=
"Jun 22, 1974 at 00:00 UTC"
course_fix
.
add_children
(
course_fix
ture
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
...
@@ -426,9 +419,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -426,9 +419,7 @@ class UnitPublishingTest(ContainerBase):
)
)
)
)
)
)
)
.
install
()
)
self
.
user
=
course_fix
.
user
def
test_publishing
(
self
):
def
test_publishing
(
self
):
"""
"""
...
@@ -495,7 +486,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -495,7 +486,7 @@ class UnitPublishingTest(ContainerBase):
Then I see the published content in LMS
Then I see the published content in LMS
"""
"""
unit
=
self
.
go_to_unit_page
()
unit
=
self
.
go_to_unit_page
()
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
_verify_components_visible
([
'html'
])
self
.
_verify_components_visible
([
'html'
])
def
test_view_live_changes
(
self
):
def
test_view_live_changes
(
self
):
...
@@ -510,7 +501,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -510,7 +501,7 @@ class UnitPublishingTest(ContainerBase):
"""
"""
unit
=
self
.
go_to_unit_page
()
unit
=
self
.
go_to_unit_page
()
add_discussion
(
unit
)
add_discussion
(
unit
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
_verify_components_visible
([
'html'
])
self
.
_verify_components_visible
([
'html'
])
self
.
assertEqual
(
self
.
html_content
,
self
.
courseware
.
xblock_component_html_content
(
0
))
self
.
assertEqual
(
self
.
html_content
,
self
.
courseware
.
xblock_component_html_content
(
0
))
...
@@ -527,7 +518,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -527,7 +518,7 @@ class UnitPublishingTest(ContainerBase):
unit
=
self
.
go_to_unit_page
()
unit
=
self
.
go_to_unit_page
()
add_discussion
(
unit
)
add_discussion
(
unit
)
unit
.
publish_action
.
click
()
unit
.
publish_action
.
click
()
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
_verify_components_visible
([
'html'
,
'discussion'
])
self
.
_verify_components_visible
([
'html'
,
'discussion'
])
def
test_initially_unlocked_visible_to_students
(
self
):
def
test_initially_unlocked_visible_to_students
(
self
):
...
@@ -547,7 +538,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -547,7 +538,7 @@ class UnitPublishingTest(ContainerBase):
self
.
_verify_release_date_info
(
self
.
_verify_release_date_info
(
unit
,
self
.
RELEASE_TITLE_RELEASED
,
self
.
past_start_date_text
+
' with Section "Unlocked Section"'
unit
,
self
.
RELEASE_TITLE_RELEASED
,
self
.
past_start_date_text
+
' with Section "Unlocked Section"'
)
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
_verify_student_view_visible
([
'problem'
])
self
.
_verify_student_view_visible
([
'problem'
])
def
test_locked_visible_to_staff_only
(
self
):
def
test_locked_visible_to_staff_only
(
self
):
...
@@ -567,7 +558,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -567,7 +558,7 @@ class UnitPublishingTest(ContainerBase):
self
.
assertTrue
(
checked
)
self
.
assertTrue
(
checked
)
self
.
assertFalse
(
unit
.
currently_visible_to_students
)
self
.
assertFalse
(
unit
.
currently_visible_to_students
)
self
.
_verify_publish_title
(
unit
,
self
.
LOCKED_STATUS
)
self
.
_verify_publish_title
(
unit
,
self
.
LOCKED_STATUS
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
# Will initially be in staff view, locked component should be visible.
# Will initially be in staff view, locked component should be visible.
self
.
_verify_components_visible
([
'problem'
])
self
.
_verify_components_visible
([
'problem'
])
# Switch to student view and verify not visible
# Switch to student view and verify not visible
...
@@ -591,7 +582,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -591,7 +582,7 @@ class UnitPublishingTest(ContainerBase):
unit
,
self
.
RELEASE_TITLE_RELEASED
,
unit
,
self
.
RELEASE_TITLE_RELEASED
,
self
.
past_start_date_text
+
' with Subsection "Subsection With Locked Unit"'
self
.
past_start_date_text
+
' with Subsection "Subsection With Locked Unit"'
)
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
_verify_student_view_locked
()
self
.
_verify_student_view_locked
()
def
test_unlocked_visible_to_all
(
self
):
def
test_unlocked_visible_to_all
(
self
):
...
@@ -611,7 +602,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -611,7 +602,7 @@ class UnitPublishingTest(ContainerBase):
self
.
assertFalse
(
checked
)
self
.
assertFalse
(
checked
)
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
self
.
assertTrue
(
unit
.
currently_visible_to_students
)
self
.
assertTrue
(
unit
.
currently_visible_to_students
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
# Will initially be in staff view, components always visible.
# Will initially be in staff view, components always visible.
self
.
_verify_components_visible
([
'discussion'
])
self
.
_verify_components_visible
([
'discussion'
])
# Switch to student view and verify visible.
# Switch to student view and verify visible.
...
@@ -641,7 +632,7 @@ class UnitPublishingTest(ContainerBase):
...
@@ -641,7 +632,7 @@ class UnitPublishingTest(ContainerBase):
unit
.
publish_action
.
click
()
unit
.
publish_action
.
click
()
unit
.
wait_for_ajax
()
unit
.
wait_for_ajax
()
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
assertTrue
(
modified_content
in
self
.
courseware
.
xblock_component_html_content
(
0
))
self
.
assertTrue
(
modified_content
in
self
.
courseware
.
xblock_component_html_content
(
0
))
def
test_delete_child_in_published_unit
(
self
):
def
test_delete_child_in_published_unit
(
self
):
...
@@ -662,9 +653,16 @@ class UnitPublishingTest(ContainerBase):
...
@@ -662,9 +653,16 @@ class UnitPublishingTest(ContainerBase):
unit
.
publish_action
.
click
()
unit
.
publish_action
.
click
()
unit
.
wait_for_ajax
()
unit
.
wait_for_ajax
()
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
self
.
_verify_publish_title
(
unit
,
self
.
PUBLISHED_STATUS
)
unit
.
view_published_version
(
)
self
.
_view_published_version
(
unit
)
self
.
assertEqual
(
0
,
self
.
courseware
.
num_xblock_components
)
self
.
assertEqual
(
0
,
self
.
courseware
.
num_xblock_components
)
def
_view_published_version
(
self
,
unit
):
"""
Goes to the published version, then waits for the browser to load the page.
"""
unit
.
view_published_version
()
self
.
courseware
.
wait_for_page
()
def
_verify_and_return_staff_page
(
self
):
def
_verify_and_return_staff_page
(
self
):
"""
"""
Verifies that the browser is on the staff page and returns a StaffPage.
Verifies that the browser is on the staff page and returns a StaffPage.
...
...
This diff is collapsed.
Click to expand it.
common/test/acceptance/tests/test_studio_general.py
View file @
f31475a2
...
@@ -113,57 +113,6 @@ class CoursePagesTest(StudioCourseTest):
...
@@ -113,57 +113,6 @@ class CoursePagesTest(StudioCourseTest):
page
.
visit
()
page
.
visit
()
@attr
(
'shard_1'
)
class
CourseSectionTest
(
StudioCourseTest
):
"""
Tests that verify the sections name editable only inside headers in Studio Course Outline that you can get to
when logged in and have a course.
"""
COURSE_ID_SEPARATOR
=
"."
def
setUp
(
self
):
"""
Install a course with no content using a fixture.
"""
super
(
CourseSectionTest
,
self
)
.
setUp
()
self
.
course_outline_page
=
CourseOutlinePage
(
self
.
browser
,
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
]
)
self
.
course_outline_page
.
visit
()
def
populate_course_fixture
(
self
,
course_fixture
):
""" Populates the course fixture with a test section """
course_fixture
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
)
def
test_section_name_editable_in_course_outline
(
self
):
"""
Check that section name is editable on course outline page.
"""
new_name
=
u"Test Section New"
section
=
self
.
course_outline_page
.
section_at
(
0
)
self
.
assertEqual
(
section
.
name
,
u"Test Section"
)
section
.
change_name
(
new_name
)
self
.
browser
.
refresh
()
self
.
assertEqual
(
section
.
name
,
new_name
)
# TODO: re-enable when release date support is added back
# def test_section_name_not_editable_inside_modal(self):
# """
# Check that section name is not editable inside "Section Release Date" modal on course outline page.
# """
# parent_css='div.modal-window'
# self.course_outline_page.click_release_date()
# section_name = self.course_outline_page.get_section_name(parent_css)[0]
# self.assertEqual(section_name, '"Test Section"')
# self.course_outline_page.click_section_name(parent_css)
# section_name_edit_form = self.course_outline_page.section_name_edit_form_present(parent_css)
# self.assertFalse(section_name_edit_form)
@attr
(
'shard_1'
)
class
DiscussionPreviewTest
(
StudioCourseTest
):
class
DiscussionPreviewTest
(
StudioCourseTest
):
"""
"""
Tests that Inline Discussions are rendered with a custom preview in Studio
Tests that Inline Discussions are rendered with a custom preview in Studio
...
...
This diff is collapsed.
Click to expand it.
common/test/acceptance/tests/test_studio_outline.py
0 → 100644
View file @
f31475a2
This diff is collapsed.
Click to expand it.
common/test/acceptance/tests/test_studio_split_test.py
View file @
f31475a2
...
@@ -65,30 +65,22 @@ class SplitTestMixin(object):
...
@@ -65,30 +65,22 @@ class SplitTestMixin(object):
Promise
(
missing_groups_button_not_present
,
"Add missing groups button should not be showing."
)
.
fulfill
()
Promise
(
missing_groups_button_not_present
,
"Add missing groups button should not be showing."
)
.
fulfill
()
@attr
(
'shard_1'
)
@attr
(
'shard_1'
)
class
SplitTest
(
ContainerBase
,
SplitTestMixin
):
class
SplitTest
(
ContainerBase
):
"""
"""
Tests for creating and editing split test instances in Studio.
Tests for creating and editing split test instances in Studio.
"""
"""
__test__
=
True
__test__
=
True
def
setUp
(
self
):
super
(
SplitTest
,
self
)
.
setUp
()
# This line should be called once courseFixture is installed
self
.
course_fixture
.
_update_xblock
(
self
.
course_fixture
.
_course_location
,
{
"metadata"
:
{
u"user_partitions"
:
[
UserPartition
(
0
,
'Configuration alpha,beta'
,
'first'
,
[
Group
(
"0"
,
'alpha'
),
Group
(
"1"
,
'beta'
)])
.
to_json
(),
UserPartition
(
1
,
'Configuration 0,1,2'
,
'second'
,
[
Group
(
"0"
,
'Group 0'
),
Group
(
"1"
,
'Group 1'
),
Group
(
"2"
,
'Group 2'
)])
.
to_json
()
],
},
})
def
populate_course_fixture
(
self
,
course_fixture
):
def
populate_course_fixture
(
self
,
course_fixture
):
""" Populates the course """
course_fixture
.
add_advanced_settings
(
course_fixture
.
add_advanced_settings
(
{
u"advanced_modules"
:
{
"value"
:
[
"split_test"
]}}
{
u"advanced_modules"
:
{
"value"
:
[
"split_test"
]},
u"user_partitions"
:
{
"value"
:
[
UserPartition
(
0
,
'Configuration alpha,beta'
,
'first'
,
[
Group
(
"0"
,
'alpha'
),
Group
(
"1"
,
'beta'
)])
.
to_json
(),
UserPartition
(
1
,
'Configuration 0,1,2'
,
'second'
,
[
Group
(
"0"
,
'Group 0'
),
Group
(
"1"
,
'Group 1'
),
Group
(
"2"
,
'Group 2'
)])
.
to_json
()
]}
}
)
)
course_fixture
.
add_children
(
course_fixture
.
add_children
(
...
@@ -99,6 +91,16 @@ class SplitTest(ContainerBase, SplitTestMixin):
...
@@ -99,6 +91,16 @@ class SplitTest(ContainerBase, SplitTestMixin):
)
)
)
)
def
verify_add_missing_groups_button_not_present
(
self
,
container
):
"""
Checks that the "add missing groups" button/link is not present.
"""
def
missing_groups_button_not_present
():
button_present
=
container
.
missing_groups_button_present
()
return
(
not
button_present
,
not
button_present
)
Promise
(
missing_groups_button_not_present
,
"Add missing groups button should not be showing."
)
.
fulfill
()
def
create_poorly_configured_split_instance
(
self
):
def
create_poorly_configured_split_instance
(
self
):
"""
"""
Creates a split test instance with a missing group and an inactive group.
Creates a split test instance with a missing group and an inactive group.
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment