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
3e6670d1
Commit
3e6670d1
authored
Jun 02, 2015
by
Awais Jibran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PLAT-643
Fixed cms course export
parent
fd737d4d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
0 deletions
+68
-0
cms/djangoapps/contentstore/management/commands/export.py
+3
-0
cms/djangoapps/contentstore/management/commands/tests/test_export.py
+65
-0
No files found.
cms/djangoapps/contentstore/management/commands/export.py
View file @
3e6670d1
...
@@ -32,6 +32,9 @@ class Command(BaseCommand):
...
@@ -32,6 +32,9 @@ class Command(BaseCommand):
print
(
"Exporting course id = {0} to {1}"
.
format
(
course_key
,
output_path
))
print
(
"Exporting course id = {0} to {1}"
.
format
(
course_key
,
output_path
))
if
not
output_path
.
endswith
(
'/'
):
output_path
+=
'/'
root_dir
=
os
.
path
.
dirname
(
output_path
)
root_dir
=
os
.
path
.
dirname
(
output_path
)
course_dir
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
output_path
))[
0
]
course_dir
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
output_path
))[
0
]
...
...
cms/djangoapps/contentstore/management/commands/tests/test_export.py
0 → 100644
View file @
3e6670d1
"""
Tests for exporting courseware to the desired path
"""
import
unittest
import
shutil
import
ddt
from
django.core.management
import
CommandError
,
call_command
from
tempfile
import
mkdtemp
from
opaque_keys
import
InvalidKeyError
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
xmodule.modulestore
import
ModuleStoreEnum
from
xmodule.modulestore.tests.django_utils
import
ModuleStoreTestCase
from
xmodule.modulestore.django
import
modulestore
class
TestArgParsingCourseExport
(
unittest
.
TestCase
):
"""
Tests for parsing arguments for the `export` management command
"""
def
setUp
(
self
):
super
(
TestArgParsingCourseExport
,
self
)
.
setUp
()
def
test_no_args
(
self
):
errstring
=
"export requires two arguments: <course id> <output path>"
with
self
.
assertRaises
(
SystemExit
)
as
ex
:
with
self
.
assertRaisesRegexp
(
CommandError
,
errstring
):
call_command
(
'export'
)
self
.
assertEqual
(
ex
.
exception
.
code
,
1
)
@ddt.ddt
class
TestCourseExport
(
ModuleStoreTestCase
):
"""
Test exporting a course
"""
def
setUp
(
self
):
super
(
TestCourseExport
,
self
)
.
setUp
()
# Temp directories (temp_dir_1: relative path, temp_dir_2: absolute path)
self
.
temp_dir_1
=
mkdtemp
()
self
.
temp_dir_2
=
mkdtemp
(
dir
=
""
)
# Clean temp directories
self
.
addCleanup
(
shutil
.
rmtree
,
self
.
temp_dir_1
)
self
.
addCleanup
(
shutil
.
rmtree
,
self
.
temp_dir_2
)
@ddt.data
(
ModuleStoreEnum
.
Type
.
mongo
,
ModuleStoreEnum
.
Type
.
split
)
def
test_export_course_with_directory_name
(
self
,
store
):
"""
Create a new course try exporting in a path specified
"""
course
=
CourseFactory
.
create
(
default_store
=
store
)
course_id
=
unicode
(
course
.
id
)
self
.
assertTrue
(
modulestore
()
.
has_course
(
course
.
id
),
"Could not find course in {}"
.
format
(
store
)
)
# Test `export` management command with invalid course_id
with
self
.
assertRaises
(
InvalidKeyError
):
call_command
(
'export'
,
"InvalidCourseID"
,
self
.
temp_dir_1
)
# Test `export` management command with correct course_id
for
output_dir
in
[
self
.
temp_dir_1
,
self
.
temp_dir_2
]:
call_command
(
'export'
,
course_id
,
output_dir
)
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