Commit 13af6fc1 by Carson Gee

Refactored terminology and added loop break for optimization

parent 4844a504
...@@ -23,7 +23,7 @@ class TestImport(ModuleStoreTestCase): ...@@ -23,7 +23,7 @@ class TestImport(ModuleStoreTestCase):
""" """
COURSE_ID = ['EDx', '0.00x', '2013_Spring', ] COURSE_ID = ['EDx', '0.00x', '2013_Spring', ]
DIFF_TERM = ['EDx', '0.00x', '2014_Spring', ] DIFF_RUN = ['EDx', '0.00x', '2014_Spring', ]
def setUp(self): def setUp(self):
""" """
...@@ -43,14 +43,14 @@ class TestImport(ModuleStoreTestCase): ...@@ -43,14 +43,14 @@ class TestImport(ModuleStoreTestCase):
with open(os.path.join(self.good_dir, "course", "{0[2]}.xml".format(self.COURSE_ID)), "w+") as f: with open(os.path.join(self.good_dir, "course", "{0[2]}.xml".format(self.COURSE_ID)), "w+") as f:
f.write('<course></course>') f.write('<course></course>')
# Create term changed course xml # Create run changed course xml
self.dupe_dir = tempfile.mkdtemp(dir=self.content_dir) self.dupe_dir = tempfile.mkdtemp(dir=self.content_dir)
os.makedirs(os.path.join(self.dupe_dir, "course")) os.makedirs(os.path.join(self.dupe_dir, "course"))
with open(os.path.join(self.dupe_dir, "course.xml"), "w+") as f: with open(os.path.join(self.dupe_dir, "course.xml"), "w+") as f:
f.write('<course url_name="{0[2]}" org="{0[0]}" ' f.write('<course url_name="{0[2]}" org="{0[0]}" '
'course="{0[1]}"/>'.format(self.DIFF_TERM)) 'course="{0[1]}"/>'.format(self.DIFF_RUN))
with open(os.path.join(self.dupe_dir, "course", "{0[2]}.xml".format(self.DIFF_TERM)), "w+") as f: with open(os.path.join(self.dupe_dir, "course", "{0[2]}.xml".format(self.DIFF_RUN)), "w+") as f:
f.write('<course></course>') f.write('<course></course>')
def test_forum_seed(self): def test_forum_seed(self):
...@@ -63,8 +63,9 @@ class TestImport(ModuleStoreTestCase): ...@@ -63,8 +63,9 @@ class TestImport(ModuleStoreTestCase):
def test_duplicate_with_url(self): def test_duplicate_with_url(self):
""" """
Check to make sure an import doesn't import courses that will Check to make sure an import doesn't import courses that have the
create find one duplicates same org and course, but they have different runs in order to
prevent modulestore "findone" exceptions on deletion
""" """
# Load up base course and verify it is available # Load up base course and verify it is available
call_command('import', self.content_dir, self.good_dir) call_command('import', self.content_dir, self.good_dir)
...@@ -73,4 +74,4 @@ class TestImport(ModuleStoreTestCase): ...@@ -73,4 +74,4 @@ class TestImport(ModuleStoreTestCase):
# Now load up duped course and verify it doesn't load # Now load up duped course and verify it doesn't load
call_command('import', self.content_dir, self.dupe_dir) call_command('import', self.content_dir, self.dupe_dir)
self.assertIsNone(store.get_course('/'.join(self.DIFF_TERM))) self.assertIsNone(store.get_course('/'.join(self.DIFF_RUN)))
...@@ -179,15 +179,15 @@ def import_from_xml( ...@@ -179,15 +179,15 @@ def import_from_xml(
course_prefix = u'{0.org}/{0.course}'.format(course_location) course_prefix = u'{0.org}/{0.course}'.format(course_location)
# Check to see if a course with the same # Check to see if a course with the same
# pseudo_course_id, but different term exists in # pseudo_course_id, but different run exists in
# the passed store to avoid broken courses # the passed store to avoid broken courses
courses = store.get_courses() courses = store.get_courses()
bad_term = False bad_run = False
for course in courses: for course in courses:
if course.location.course_id.startswith(course_prefix): if course.location.course_id.startswith(course_prefix):
log.debug('Import is overwriting existing course') log.debug('Import is overwriting existing course')
# Importing over existing course, check # Importing over existing course, check
# that terms match or fail # that runs match or fail
if course.location.name != module.location.name: if course.location.name != module.location.name:
log.error( log.error(
'A course with ID %s exists, and this ' 'A course with ID %s exists, and this '
...@@ -197,8 +197,9 @@ def import_from_xml( ...@@ -197,8 +197,9 @@ def import_from_xml(
course.location.course_id, course.location.course_id,
module.location.course_id module.location.course_id
) )
bad_term = True bad_run = True
if bad_term: break
if bad_run:
# Skip this course, but keep trying to import courses # Skip this course, but keep trying to import courses
continue continue
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment