On import, don't move the course into the course_dir but just
do the import from wherever it unpacked. Avoids an exception where the top-level dir had a subdir of same name as one being moved, but also just makes it faster.
This commit is contained in:
@@ -210,17 +210,15 @@ def import_handler(request, course_key_string):
|
||||
status=415
|
||||
)
|
||||
|
||||
logging.debug('found course.xml at {0}'.format(dirpath))
|
||||
dirpath = os.path.relpath(dirpath, data_root)
|
||||
|
||||
if dirpath != course_dir:
|
||||
for fname in os.listdir(dirpath):
|
||||
shutil.move(dirpath / fname, course_dir)
|
||||
logging.debug('found course.xml at {0}'.format(dirpath))
|
||||
|
||||
_module_store, course_items = import_from_xml(
|
||||
modulestore(),
|
||||
request.user.id,
|
||||
settings.GITHUB_REPO_ROOT,
|
||||
[course_subdir],
|
||||
[dirpath],
|
||||
load_error_modules=False,
|
||||
static_content_store=contentstore(),
|
||||
target_course_id=course_key,
|
||||
|
||||
@@ -45,11 +45,13 @@ class ImportTestCase(CourseTestCase):
|
||||
# Create tar test files -----------------------------------------------
|
||||
# OK course:
|
||||
good_dir = tempfile.mkdtemp(dir=self.content_dir)
|
||||
os.makedirs(os.path.join(good_dir, "course"))
|
||||
with open(os.path.join(good_dir, "course.xml"), "w+") as f:
|
||||
# test course being deeper down than top of tar file
|
||||
embedded_dir = os.path.join(good_dir, "grandparent", "parent")
|
||||
os.makedirs(os.path.join(embedded_dir, "course"))
|
||||
with open(os.path.join(embedded_dir, "course.xml"), "w+") as f:
|
||||
f.write('<course url_name="2013_Spring" org="EDx" course="0.00x"/>')
|
||||
|
||||
with open(os.path.join(good_dir, "course", "2013_Spring.xml"), "w+") as f:
|
||||
with open(os.path.join(embedded_dir, "course", "2013_Spring.xml"), "w+") as f:
|
||||
f.write('<course></course>')
|
||||
|
||||
self.good_tar = os.path.join(self.content_dir, "good.tar.gz")
|
||||
|
||||
Reference in New Issue
Block a user