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
ce9d2439
Commit
ce9d2439
authored
Jul 27, 2015
by
David Ormsbee
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #9068 from edx/ormsbee/test_course_bulk_ops
Optimize test course creation with bulk_operations
parents
dccc36a4
701f5fc1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
3 deletions
+11
-3
common/lib/xmodule/xmodule/modulestore/tests/django_utils.py
+1
-1
common/lib/xmodule/xmodule/modulestore/tests/factories.py
+8
-1
common/lib/xmodule/xmodule/modulestore/tests/utils.py
+2
-1
No files found.
common/lib/xmodule/xmodule/modulestore/tests/django_utils.py
View file @
ce9d2439
...
...
@@ -371,7 +371,7 @@ class ModuleStoreTestCase(TestCase):
"""
Create an equivalent to the toy xml course
"""
# with self.store.bulk_operations(self.store.make_course_key(org, course, run)
):
with
self
.
store
.
bulk_operations
(
self
.
store
.
make_course_key
(
org
,
course
,
run
),
emit_signals
=
False
):
self
.
toy_loc
=
self
.
create_sample_course
(
# pylint: disable=attribute-defined-outside-init
org
,
course
,
run
,
TOY_BLOCK_INFO_TREE
,
{
...
...
common/lib/xmodule/xmodule/modulestore/tests/factories.py
View file @
ce9d2439
...
...
@@ -99,7 +99,11 @@ class CourseFactory(XModuleFactory):
# pylint: disable=unused-argument
@classmethod
def
_create
(
cls
,
target_class
,
**
kwargs
):
"""
Create and return a new course. For performance reasons, we do not emit
signals during this process, but if you need signals to run, you can
pass `emit_signals=True` to this method.
"""
# All class attributes (from this class and base classes) are
# passed in via **kwargs. However, some of those aren't actual field values,
# so pop those off for use separately
...
...
@@ -110,12 +114,15 @@ class CourseFactory(XModuleFactory):
name
=
kwargs
.
get
(
'name'
,
kwargs
.
get
(
'run'
,
Location
.
clean
(
kwargs
.
get
(
'display_name'
))))
run
=
kwargs
.
pop
(
'run'
,
name
)
user_id
=
kwargs
.
pop
(
'user_id'
,
ModuleStoreEnum
.
UserID
.
test
)
emit_signals
=
kwargs
.
get
(
'emit_signals'
,
False
)
# Pass the metadata just as field=value pairs
kwargs
.
update
(
kwargs
.
pop
(
'metadata'
,
{}))
default_store_override
=
kwargs
.
pop
(
'default_store'
,
None
)
with
store
.
branch_setting
(
ModuleStoreEnum
.
Branch
.
draft_preferred
):
course_key
=
store
.
make_course_key
(
org
,
number
,
run
)
with
store
.
bulk_operations
(
course_key
,
emit_signals
=
emit_signals
):
if
default_store_override
is
not
None
:
with
store
.
default_store
(
default_store_override
):
new_course
=
store
.
create_course
(
org
,
number
,
run
,
user_id
,
fields
=
kwargs
)
...
...
common/lib/xmodule/xmodule/modulestore/tests/utils.py
View file @
ce9d2439
...
...
@@ -149,7 +149,7 @@ class ProceduralCourseTestMixin(object):
"""
Contains methods for testing courses generated procedurally
"""
def
populate_course
(
self
,
branching
=
2
):
def
populate_course
(
self
,
branching
=
2
,
emit_signals
=
False
):
"""
Add k chapters, k^2 sections, k^3 verticals, k^4 problems to self.course (where k = branching)
"""
...
...
@@ -172,4 +172,5 @@ class ProceduralCourseTestMixin(object):
)
descend
(
child
,
stack
[
1
:])
with
self
.
store
.
bulk_operations
(
self
.
course
.
id
,
emit_signals
=
emit_signals
):
descend
(
self
.
course
,
[
'chapter'
,
'sequential'
,
'vertical'
,
'problem'
])
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