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
ff00fbd1
Commit
ff00fbd1
authored
Apr 09, 2014
by
cahrens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bok choy acceptance test for drag and drop.
parent
f3a23f39
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
321 additions
and
214 deletions
+321
-214
common/test/acceptance/pages/studio/container.py
+36
-0
common/test/acceptance/tests/test_studio_acid_xblock.py
+205
-0
common/test/acceptance/tests/test_studio_container.py
+80
-16
common/test/acceptance/tests/test_studio_general.py
+0
-198
No files found.
common/test/acceptance/pages/studio/container.py
View file @
ff00fbd1
...
...
@@ -6,6 +6,7 @@ from bok_choy.page_object import PageObject
from
bok_choy.promise
import
Promise
from
.
import
BASE_URL
from
selenium.webdriver.common.action_chains
import
ActionChains
class
ContainerPage
(
PageObject
):
"""
...
...
@@ -44,6 +45,25 @@ class ContainerPage(PageObject):
return
self
.
q
(
css
=
XBlockWrapper
.
BODY_SELECTOR
)
.
map
(
lambda
el
:
XBlockWrapper
(
self
.
browser
,
el
.
get_attribute
(
'data-locator'
)))
.
results
def
drag
(
self
,
source_index
,
target_index
,
after
=
True
):
"""
Gets the drag handle with index source_index (relative to the vertical layout of the page)
and drags it to the location of the drag handle with target_index.
This should drag the element with the source_index drag handle AFTER the
one with the target_index drag handle, unless 'after' is set to False.
"""
draggables
=
self
.
q
(
css
=
'.drag-handle'
)
source
=
draggables
[
source_index
]
target
=
draggables
[
target_index
]
action
=
ActionChains
(
self
.
browser
)
action
.
click_and_hold
(
source
)
.
perform
()
# pylint: disable=protected-access
action
.
move_to_element_with_offset
(
target
,
0
,
target
.
size
[
'height'
]
/
2
if
after
else
0
)
.
perform
()
# pylint: disable=protected-access
action
.
release
()
.
perform
()
# TODO: should wait for "Saving" to go away so we know the operation is complete?
class
XBlockWrapper
(
PageObject
):
"""
...
...
@@ -79,5 +99,21 @@ class XBlockWrapper(PageObject):
return
None
@property
def
children
(
self
):
"""
Will return any first-generation descendant xblocks of this xblock.
"""
descendants
=
self
.
q
(
css
=
self
.
_bounded_selector
(
self
.
BODY_SELECTOR
))
.
map
(
lambda
el
:
XBlockWrapper
(
self
.
browser
,
el
.
get_attribute
(
'data-locator'
)))
.
results
# Now remove any non-direct descendants.
grandkids
=
[]
for
descendant
in
descendants
:
grandkids
.
extend
(
descendant
.
children
)
grand_locators
=
[
grandkid
.
locator
for
grandkid
in
grandkids
]
return
[
descendant
for
descendant
in
descendants
if
not
descendant
.
locator
in
grand_locators
]
@property
def
preview_selector
(
self
):
return
self
.
_bounded_selector
(
'.xblock-student_view'
)
common/test/acceptance/tests/test_studio_acid_xblock.py
0 → 100644
View file @
ff00fbd1
"""
Acceptance tests for Studio related to the acid xblock.
"""
from
unittest
import
skip
from
bok_choy.web_app_test
import
WebAppTest
from
..pages.studio.auto_auth
import
AutoAuthPage
from
..pages.studio.overview
import
CourseOutlinePage
from
..pages.xblock.acid
import
AcidView
from
..fixtures.course
import
CourseFixture
,
XBlockFixtureDesc
class
XBlockAcidBase
(
WebAppTest
):
"""
Base class for tests that verify that XBlock integration is working correctly
"""
__test__
=
False
def
setUp
(
self
):
"""
Create a unique identifier for the course used in this test.
"""
# Ensure that the superclass sets up
super
(
XBlockAcidBase
,
self
)
.
setUp
()
# Define a unique course identifier
self
.
course_info
=
{
'org'
:
'test_org'
,
'number'
:
'course_'
+
self
.
unique_id
[:
5
],
'run'
:
'test_'
+
self
.
unique_id
,
'display_name'
:
'Test Course '
+
self
.
unique_id
}
self
.
auth_page
=
AutoAuthPage
(
self
.
browser
,
staff
=
True
)
self
.
outline
=
CourseOutlinePage
(
self
.
browser
,
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
]
)
self
.
course_id
=
'{org}.{number}.{run}'
.
format
(
**
self
.
course_info
)
self
.
setup_fixtures
()
self
.
auth_page
.
visit
()
def
validate_acid_block_preview
(
self
,
acid_block
):
"""
Validate the Acid Block's preview
"""
self
.
assertTrue
(
acid_block
.
init_fn_passed
)
self
.
assertTrue
(
acid_block
.
resource_url_passed
)
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_state'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_state_summary'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'preferences'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_info'
))
def
test_acid_block_preview
(
self
):
"""
Verify that all expected acid block tests pass in studio preview
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
acid_block
=
AcidView
(
self
.
browser
,
unit
.
components
[
0
]
.
preview_selector
)
self
.
validate_acid_block_preview
(
acid_block
)
def
test_acid_block_editor
(
self
):
"""
Verify that all expected acid block tests pass in studio editor
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
unit
.
edit_draft
()
acid_block
=
AcidView
(
self
.
browser
,
unit
.
components
[
0
]
.
edit
()
.
editor_selector
)
self
.
assertTrue
(
acid_block
.
init_fn_passed
)
self
.
assertTrue
(
acid_block
.
resource_url_passed
)
self
.
assertTrue
(
acid_block
.
scope_passed
(
'content'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'settings'
))
class
XBlockAcidNoChildTest
(
XBlockAcidBase
):
"""
Tests of an AcidBlock with no children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid'
,
'Acid Block'
)
)
)
)
)
.
install
()
class
XBlockAcidParentBase
(
XBlockAcidBase
):
"""
Base class for tests that verify that parent XBlock integration is working correctly
"""
__test__
=
False
def
validate_acid_block_preview
(
self
,
acid_block
):
super
(
XBlockAcidParentBase
,
self
)
.
validate_acid_block_preview
(
acid_block
)
self
.
assertTrue
(
acid_block
.
child_tests_passed
)
def
test_acid_block_preview
(
self
):
"""
Verify that all expected acid block tests pass in studio preview
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
container
=
unit
.
components
[
0
]
.
go_to_container
()
acid_block
=
AcidView
(
self
.
browser
,
container
.
xblocks
[
0
]
.
preview_selector
)
self
.
validate_acid_block_preview
(
acid_block
)
@skip
(
'This will fail until the container page supports editing'
)
def
test_acid_block_editor
(
self
):
super
(
XBlockAcidParentBase
,
self
)
.
test_acid_block_editor
()
class
XBlockAcidEmptyParentTest
(
XBlockAcidParentBase
):
"""
Tests of an AcidBlock with children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid_parent'
,
'Acid Parent Block'
)
.
add_children
(
)
)
)
)
)
.
install
()
class
XBlockAcidChildTest
(
XBlockAcidParentBase
):
"""
Tests of an AcidBlock with children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid_parent'
,
'Acid Parent Block'
)
.
add_children
(
XBlockFixtureDesc
(
'acid'
,
'First Acid Child'
,
metadata
=
{
'name'
:
'first'
}),
XBlockFixtureDesc
(
'acid'
,
'Second Acid Child'
,
metadata
=
{
'name'
:
'second'
}),
XBlockFixtureDesc
(
'html'
,
'Html Child'
,
data
=
"<html>Contents</html>"
),
)
)
)
)
)
.
install
()
@skip
(
'This will fail until we fix support of children in pure XBlocks'
)
def
test_acid_block_preview
(
self
):
super
(
XBlockAcidChildTest
,
self
)
.
test_acid_block_preview
()
@skip
(
'This will fail until we fix support of children in pure XBlocks'
)
def
test_acid_block_editor
(
self
):
super
(
XBlockAcidChildTest
,
self
)
.
test_acid_block_editor
()
common/test/acceptance/tests/test_studio_container.py
View file @
ff00fbd1
...
...
@@ -29,6 +29,15 @@ class ContainerBase(UniqueCourseTest):
self
.
course_info
[
'run'
]
)
self
.
container_title
=
""
self
.
group_a
=
"Expand or Collapse
\n
Group A"
self
.
group_b
=
"Expand or Collapse
\n
Group B"
self
.
group_empty
=
"Expand or Collapse
\n
Group Empty"
self
.
group_a_item_1
=
"Group A Item 1"
self
.
group_a_item_2
=
"Group A Item 2"
self
.
group_b_item_1
=
"Group B Item 1"
self
.
group_b_item_2
=
"Group B Item 2"
self
.
setup_fixtures
()
self
.
auth_page
.
visit
()
...
...
@@ -47,12 +56,13 @@ class ContainerBase(UniqueCourseTest):
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Container'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Group A'
)
.
add_children
(
XBlockFixtureDesc
(
'html'
,
'Group A Item 1'
),
XBlockFixtureDesc
(
'html'
,
'Group A Item 2'
)
XBlockFixtureDesc
(
'html'
,
self
.
group_a_item_1
),
XBlockFixtureDesc
(
'html'
,
self
.
group_a_item_2
)
),
XBlockFixtureDesc
(
'vertical'
,
'Group Empty'
),
XBlockFixtureDesc
(
'vertical'
,
'Group B'
)
.
add_children
(
XBlockFixtureDesc
(
'html'
,
'Group B Item 1'
),
XBlockFixtureDesc
(
'html'
,
'Group B Item 2'
)
XBlockFixtureDesc
(
'html'
,
self
.
group_b_item_1
),
XBlockFixtureDesc
(
'html'
,
self
.
group_b_item_2
)
)
)
)
...
...
@@ -76,23 +86,77 @@ class DragAndDropTest(ContainerBase):
"""
__test__
=
True
def
verify_ordering
(
self
,
container
,
expected_ordering
):
def
verify_ordering
(
self
,
container
,
expected_ordering
s
):
xblocks
=
container
.
xblocks
for
xblock
in
xblocks
:
print
xblock
.
name
# TODO: need to verify parenting structure on page. Just checking
# the order of the xblocks is not sufficient.
def
test_reorder_in_group
(
self
):
for
expected_ordering
in
expected_orderings
:
for
xblock
in
xblocks
:
parent
=
expected_ordering
.
keys
()[
0
]
if
xblock
.
name
==
parent
:
children
=
xblock
.
children
expected_length
=
len
(
expected_ordering
.
get
(
parent
))
self
.
assertEqual
(
expected_length
,
len
(
children
),
"Number of children incorrect for group {0}. Expected {1} but got {2}."
.
format
(
parent
,
expected_length
,
len
(
children
)))
for
idx
,
expected
in
enumerate
(
expected_ordering
.
get
(
parent
)):
self
.
assertEqual
(
expected
,
children
[
idx
]
.
name
)
def
drag_and_verify
(
self
,
source
,
target
,
expected_ordering
,
after
=
True
):
container
=
self
.
go_to_container_page
(
make_draft
=
True
)
# Swap Group A Item 1 and Group A Item 2.
container
.
drag
(
1
,
2
)
container
.
drag
(
source
,
target
,
after
)
expected_ordering
=
[{
"Group A"
:
[
"Group A Item 2"
,
"Group A Item 1"
]},
{
"Group B"
:
[
"Group B Item 1"
,
"Group B Item 2"
]}]
self
.
verify_ordering
(
container
,
expected_ordering
)
# Reload the page to see that the reordering was saved persisted.
container
=
self
.
go_to_container_page
()
self
.
verify_ordering
(
container
,
expected_ordering
)
def
test_reorder_in_group
(
self
):
"""
Drag Group B Item 2 before Group B Item 1.
"""
expected_ordering
=
[{
self
.
container_title
:
[
self
.
group_a
,
self
.
group_empty
,
self
.
group_b
]},
{
self
.
group_a
:
[
self
.
group_a_item_1
,
self
.
group_a_item_2
]},
{
self
.
group_b
:
[
self
.
group_b_item_2
,
self
.
group_b_item_1
]},
{
self
.
group_empty
:
[]}]
self
.
drag_and_verify
(
6
,
4
,
expected_ordering
)
def
test_drag_to_top
(
self
):
"""
Drag Group A Item 1 to top level (outside of Group A).
"""
expected_ordering
=
[{
self
.
container_title
:
[
self
.
group_a_item_1
,
self
.
group_a
,
self
.
group_empty
,
self
.
group_b
]},
{
self
.
group_a
:
[
self
.
group_a_item_2
]},
{
self
.
group_b
:
[
self
.
group_b_item_1
,
self
.
group_b_item_2
]},
{
self
.
group_empty
:
[]}]
self
.
drag_and_verify
(
1
,
0
,
expected_ordering
,
False
)
def
test_drag_into_different_group
(
self
):
"""
Drag Group A Item 1 into Group B (last element).
"""
expected_ordering
=
[{
self
.
container_title
:
[
self
.
group_a
,
self
.
group_empty
,
self
.
group_b
]},
{
self
.
group_a
:
[
self
.
group_a_item_2
]},
{
self
.
group_b
:
[
self
.
group_b_item_1
,
self
.
group_b_item_2
,
self
.
group_a_item_1
]},
{
self
.
group_empty
:
[]}]
self
.
drag_and_verify
(
1
,
6
,
expected_ordering
)
def
test_drag_group_into_group
(
self
):
"""
Drag Group B into Group A (last element).
"""
expected_ordering
=
[{
self
.
container_title
:
[
self
.
group_a
,
self
.
group_empty
]},
{
self
.
group_a
:
[
self
.
group_a_item_1
,
self
.
group_a_item_2
,
self
.
group_b
]},
{
self
.
group_b
:
[
self
.
group_b_item_1
,
self
.
group_b_item_2
]},
{
self
.
group_empty
:
[]}]
self
.
drag_and_verify
(
4
,
2
,
expected_ordering
)
# Not able to drag into the empty group with automation (difficult even outside of automation).
# def test_drag_into_empty(self):
# """
# Drag Group B Item 1 to Group Empty.
# """
# expected_ordering = [{self.container_title: [self.group_a, self.group_empty, self.group_b]},
# {self.group_a: [self.group_a_item_1, self.group_a_item_2]},
# {self.group_b: [self.group_b_item_2]},
# {self.group_empty: [self.group_b_item_1]}]
# self.drag_and_verify(6, 4, expected_ordering, False)
common/test/acceptance/tests/test_studio.py
→
common/test/acceptance/tests/test_studio
_general
.py
View file @
ff00fbd1
"""
Acceptance tests for Studio.
"""
from
unittest
import
skip
from
bok_choy.web_app_test
import
WebAppTest
from
..pages.studio.asset_index
import
AssetIndexPage
...
...
@@ -22,7 +20,6 @@ from ..pages.studio.settings_advanced import AdvancedSettingsPage
from
..pages.studio.settings_graders
import
GradingPage
from
..pages.studio.signup
import
SignupPage
from
..pages.studio.textbooks
import
TextbooksPage
from
..pages.xblock.acid
import
AcidView
from
..fixtures.course
import
CourseFixture
,
XBlockFixtureDesc
from
.helpers
import
UniqueCourseTest
...
...
@@ -149,198 +146,3 @@ class DiscussionPreviewTest(UniqueCourseTest):
"""
self
.
assertTrue
(
self
.
unit
.
q
(
css
=
".discussion-preview"
)
.
present
)
self
.
assertFalse
(
self
.
unit
.
q
(
css
=
".discussion-show"
)
.
present
)
class
XBlockAcidBase
(
WebAppTest
):
"""
Base class for tests that verify that XBlock integration is working correctly
"""
__test__
=
False
def
setUp
(
self
):
"""
Create a unique identifier for the course used in this test.
"""
# Ensure that the superclass sets up
super
(
XBlockAcidBase
,
self
)
.
setUp
()
# Define a unique course identifier
self
.
course_info
=
{
'org'
:
'test_org'
,
'number'
:
'course_'
+
self
.
unique_id
[:
5
],
'run'
:
'test_'
+
self
.
unique_id
,
'display_name'
:
'Test Course '
+
self
.
unique_id
}
self
.
auth_page
=
AutoAuthPage
(
self
.
browser
,
staff
=
True
)
self
.
outline
=
CourseOutlinePage
(
self
.
browser
,
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
]
)
self
.
course_id
=
'{org}.{number}.{run}'
.
format
(
**
self
.
course_info
)
self
.
setup_fixtures
()
self
.
auth_page
.
visit
()
def
validate_acid_block_preview
(
self
,
acid_block
):
"""
Validate the Acid Block's preview
"""
self
.
assertTrue
(
acid_block
.
init_fn_passed
)
self
.
assertTrue
(
acid_block
.
resource_url_passed
)
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_state'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_state_summary'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'preferences'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'user_info'
))
def
test_acid_block_preview
(
self
):
"""
Verify that all expected acid block tests pass in studio preview
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
acid_block
=
AcidView
(
self
.
browser
,
unit
.
components
[
0
]
.
preview_selector
)
self
.
validate_acid_block_preview
(
acid_block
)
def
test_acid_block_editor
(
self
):
"""
Verify that all expected acid block tests pass in studio editor
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
unit
.
edit_draft
()
acid_block
=
AcidView
(
self
.
browser
,
unit
.
components
[
0
]
.
edit
()
.
editor_selector
)
self
.
assertTrue
(
acid_block
.
init_fn_passed
)
self
.
assertTrue
(
acid_block
.
resource_url_passed
)
self
.
assertTrue
(
acid_block
.
scope_passed
(
'content'
))
self
.
assertTrue
(
acid_block
.
scope_passed
(
'settings'
))
class
XBlockAcidNoChildTest
(
XBlockAcidBase
):
"""
Tests of an AcidBlock with no children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid'
,
'Acid Block'
)
)
)
)
)
.
install
()
class
XBlockAcidParentBase
(
XBlockAcidBase
):
"""
Base class for tests that verify that parent XBlock integration is working correctly
"""
__test__
=
False
def
validate_acid_block_preview
(
self
,
acid_block
):
super
(
XBlockAcidParentBase
,
self
)
.
validate_acid_block_preview
(
acid_block
)
self
.
assertTrue
(
acid_block
.
child_tests_passed
)
def
test_acid_block_preview
(
self
):
"""
Verify that all expected acid block tests pass in studio preview
"""
self
.
outline
.
visit
()
subsection
=
self
.
outline
.
section
(
'Test Section'
)
.
subsection
(
'Test Subsection'
)
unit
=
subsection
.
toggle_expand
()
.
unit
(
'Test Unit'
)
.
go_to
()
container
=
unit
.
components
[
0
]
.
go_to_container
()
acid_block
=
AcidView
(
self
.
browser
,
container
.
xblocks
[
0
]
.
preview_selector
)
self
.
validate_acid_block_preview
(
acid_block
)
@skip
(
'This will fail until the container page supports editing'
)
def
test_acid_block_editor
(
self
):
super
(
XBlockAcidParentBase
,
self
)
.
test_acid_block_editor
()
class
XBlockAcidEmptyParentTest
(
XBlockAcidParentBase
):
"""
Tests of an AcidBlock with children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid_parent'
,
'Acid Parent Block'
)
.
add_children
(
)
)
)
)
)
.
install
()
class
XBlockAcidChildTest
(
XBlockAcidParentBase
):
"""
Tests of an AcidBlock with children
"""
__test__
=
True
def
setup_fixtures
(
self
):
course_fix
=
CourseFixture
(
self
.
course_info
[
'org'
],
self
.
course_info
[
'number'
],
self
.
course_info
[
'run'
],
self
.
course_info
[
'display_name'
]
)
course_fix
.
add_children
(
XBlockFixtureDesc
(
'chapter'
,
'Test Section'
)
.
add_children
(
XBlockFixtureDesc
(
'sequential'
,
'Test Subsection'
)
.
add_children
(
XBlockFixtureDesc
(
'vertical'
,
'Test Unit'
)
.
add_children
(
XBlockFixtureDesc
(
'acid_parent'
,
'Acid Parent Block'
)
.
add_children
(
XBlockFixtureDesc
(
'acid'
,
'First Acid Child'
,
metadata
=
{
'name'
:
'first'
}),
XBlockFixtureDesc
(
'acid'
,
'Second Acid Child'
,
metadata
=
{
'name'
:
'second'
}),
XBlockFixtureDesc
(
'html'
,
'Html Child'
,
data
=
"<html>Contents</html>"
),
)
)
)
)
)
.
install
()
@skip
(
'This will fail until we fix support of children in pure XBlocks'
)
def
test_acid_block_preview
(
self
):
super
(
XBlockAcidChildTest
,
self
)
.
test_acid_block_preview
()
@skip
(
'This will fail until we fix support of children in pure XBlocks'
)
def
test_acid_block_editor
(
self
):
super
(
XBlockAcidChildTest
,
self
)
.
test_acid_block_editor
()
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