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
987ef9dc
Commit
987ef9dc
authored
Aug 14, 2017
by
Nimisha Asthagiri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Prevent high mem usage in generate_course_overview.
parent
0205720d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
13 deletions
+11
-13
openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py
+1
-1
openedx/core/djangoapps/content/course_overviews/models.py
+4
-7
openedx/core/djangoapps/content/course_overviews/tests.py
+6
-5
No files found.
openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py
View file @
987ef9dc
...
@@ -54,4 +54,4 @@ class Command(BaseCommand):
...
@@ -54,4 +54,4 @@ class Command(BaseCommand):
except
InvalidKeyError
:
except
InvalidKeyError
:
raise
CommandError
(
'Invalid key specified.'
)
raise
CommandError
(
'Invalid key specified.'
)
CourseOverview
.
get
_select_courses
(
course_keys
,
force_update
=
options
.
get
(
'force_update'
))
CourseOverview
.
update
_select_courses
(
course_keys
,
force_update
=
options
.
get
(
'force_update'
))
openedx/core/djangoapps/content/course_overviews/models.py
View file @
987ef9dc
...
@@ -487,9 +487,10 @@ class CourseOverview(TimeStampedModel):
...
@@ -487,9 +487,10 @@ class CourseOverview(TimeStampedModel):
return
json
.
loads
(
self
.
_pre_requisite_courses_json
)
return
json
.
loads
(
self
.
_pre_requisite_courses_json
)
@classmethod
@classmethod
def
get
_select_courses
(
cls
,
course_keys
,
force_update
=
False
):
def
update
_select_courses
(
cls
,
course_keys
,
force_update
=
False
):
"""
"""
Returns CourseOverview objects for the given course_keys.
A side-effecting method that updates CourseOverview objects for
the given course_keys.
Arguments:
Arguments:
course_keys (list[CourseKey]): Identifies for which courses to
course_keys (list[CourseKey]): Identifies for which courses to
...
@@ -498,8 +499,6 @@ class CourseOverview(TimeStampedModel):
...
@@ -498,8 +499,6 @@ class CourseOverview(TimeStampedModel):
whether the requested CourseOverview objects should be
whether the requested CourseOverview objects should be
forcefully updated (i.e., re-synched with the modulestore).
forcefully updated (i.e., re-synched with the modulestore).
"""
"""
course_overviews
=
[]
log
.
info
(
'Generating course overview for
%
d courses.'
,
len
(
course_keys
))
log
.
info
(
'Generating course overview for
%
d courses.'
,
len
(
course_keys
))
log
.
debug
(
'Generating course overview(s) for the following courses:
%
s'
,
course_keys
)
log
.
debug
(
'Generating course overview(s) for the following courses:
%
s'
,
course_keys
)
...
@@ -507,7 +506,7 @@ class CourseOverview(TimeStampedModel):
...
@@ -507,7 +506,7 @@ class CourseOverview(TimeStampedModel):
for
course_key
in
course_keys
:
for
course_key
in
course_keys
:
try
:
try
:
course_overviews
.
append
(
action
(
course_key
)
)
action
(
course_key
)
except
Exception
as
ex
:
# pylint: disable=broad-except
except
Exception
as
ex
:
# pylint: disable=broad-except
log
.
exception
(
log
.
exception
(
'An error occurred while generating course overview for
%
s:
%
s'
,
'An error occurred while generating course overview for
%
s:
%
s'
,
...
@@ -517,8 +516,6 @@ class CourseOverview(TimeStampedModel):
...
@@ -517,8 +516,6 @@ class CourseOverview(TimeStampedModel):
log
.
info
(
'Finished generating course overviews.'
)
log
.
info
(
'Finished generating course overviews.'
)
return
course_overviews
@classmethod
@classmethod
def
get_all_courses
(
cls
,
orgs
=
None
,
filter_
=
None
):
def
get_all_courses
(
cls
,
orgs
=
None
,
filter_
=
None
):
"""
"""
...
...
openedx/core/djangoapps/content/course_overviews/tests.py
View file @
987ef9dc
...
@@ -450,13 +450,14 @@ class CourseOverviewTestCase(ModuleStoreTestCase):
...
@@ -450,13 +450,14 @@ class CourseOverviewTestCase(ModuleStoreTestCase):
unmodified_overview
=
CourseOverview
.
get_from_id
(
course
.
id
)
unmodified_overview
=
CourseOverview
.
get_from_id
(
course
.
id
)
self
.
assertEqual
(
unmodified_overview
.
version
,
11
)
self
.
assertEqual
(
unmodified_overview
.
version
,
11
)
def
test_
get
_select_courses
(
self
):
def
test_
update
_select_courses
(
self
):
course_ids
=
[
CourseFactory
.
create
()
.
id
for
__
in
range
(
3
)]
course_ids
=
[
CourseFactory
.
create
()
.
id
for
__
in
range
(
3
)]
select_course_ids
=
course_ids
[:
len
(
course_ids
)
-
1
]
# all items except the last
select_course_ids
=
course_ids
[:
len
(
course_ids
)
-
1
]
# all items except the last
self
.
assertEqual
(
with
mock
.
patch
(
{
course_overview
.
id
for
course_overview
in
CourseOverview
.
get_select_courses
(
select_course_ids
)},
'openedx.core.djangoapps.content.course_overviews.models.CourseOverview.get_from_id'
set
(
select_course_ids
),
)
as
mock_get_from_id
:
)
CourseOverview
.
update_select_courses
(
select_course_ids
)
self
.
assertEquals
(
mock_get_from_id
.
call_count
,
len
(
select_course_ids
))
def
test_get_all_courses
(
self
):
def
test_get_all_courses
(
self
):
course_ids
=
[
CourseFactory
.
create
(
emit_signals
=
True
)
.
id
for
__
in
range
(
3
)]
course_ids
=
[
CourseFactory
.
create
(
emit_signals
=
True
)
.
id
for
__
in
range
(
3
)]
...
...
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