Commit 29e23521 by cahrens

Update for default store being split.

Note that now 2 courses can be imported where the only difference between them is run.
parent e66e2eda
...@@ -12,7 +12,6 @@ from django.core.management import call_command ...@@ -12,7 +12,6 @@ from django.core.management import call_command
from django_comment_common.utils import are_permissions_roles_seeded from django_comment_common.utils import are_permissions_roles_seeded
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from opaque_keys.edx.locations import SlashSeparatedCourseKey
class TestImport(ModuleStoreTestCase): class TestImport(ModuleStoreTestCase):
...@@ -20,10 +19,6 @@ class TestImport(ModuleStoreTestCase): ...@@ -20,10 +19,6 @@ class TestImport(ModuleStoreTestCase):
Unit tests for importing a course from command line Unit tests for importing a course from command line
""" """
BASE_COURSE_KEY = SlashSeparatedCourseKey(u'edX', u'test_import_course', u'2013_Spring')
DIFF_KEY = SlashSeparatedCourseKey(u'edX', u'test_import_course', u'2014_Spring')
TRUNCATED_KEY = SlashSeparatedCourseKey(u'edX', u'test_import', u'2014_Spring')
def create_course_xml(self, content_dir, course_id): def create_course_xml(self, content_dir, course_id):
directory = tempfile.mkdtemp(dir=content_dir) directory = tempfile.mkdtemp(dir=content_dir)
os.makedirs(os.path.join(directory, "course")) os.makedirs(os.path.join(directory, "course"))
...@@ -44,38 +39,23 @@ class TestImport(ModuleStoreTestCase): ...@@ -44,38 +39,23 @@ class TestImport(ModuleStoreTestCase):
self.content_dir = path(tempfile.mkdtemp()) self.content_dir = path(tempfile.mkdtemp())
self.addCleanup(shutil.rmtree, self.content_dir) self.addCleanup(shutil.rmtree, self.content_dir)
# Create good course xml self.base_course_key = self.store.make_course_key(u'edX', u'test_import_course', u'2013_Spring')
self.good_dir = self.create_course_xml(self.content_dir, self.BASE_COURSE_KEY) self.truncated_key = self.store.make_course_key(u'edX', u'test_import', u'2014_Spring')
# Create run changed course xml # Create good course xml
self.dupe_dir = self.create_course_xml(self.content_dir, self.DIFF_KEY) self.good_dir = self.create_course_xml(self.content_dir, self.base_course_key)
# Create course XML where TRUNCATED_COURSE.org == BASE_COURSE_ID.org # Create course XML where TRUNCATED_COURSE.org == BASE_COURSE_ID.org
# and BASE_COURSE_ID.startswith(TRUNCATED_COURSE.course) # and BASE_COURSE_ID.startswith(TRUNCATED_COURSE.course)
self.course_dir = self.create_course_xml(self.content_dir, self.TRUNCATED_KEY) self.course_dir = self.create_course_xml(self.content_dir, self.truncated_key)
def test_forum_seed(self): def test_forum_seed(self):
""" """
Tests that forum roles were created with import. Tests that forum roles were created with import.
""" """
self.assertFalse(are_permissions_roles_seeded(self.BASE_COURSE_KEY)) self.assertFalse(are_permissions_roles_seeded(self.base_course_key))
call_command('import', self.content_dir, self.good_dir)
self.assertTrue(are_permissions_roles_seeded(self.BASE_COURSE_KEY))
def test_duplicate_with_url(self):
"""
Check to make sure an import doesn't import courses that have the
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
call_command('import', self.content_dir, self.good_dir) call_command('import', self.content_dir, self.good_dir)
store = modulestore() self.assertTrue(are_permissions_roles_seeded(self.base_course_key))
self.assertIsNotNone(store.get_course(self.BASE_COURSE_KEY))
# Now load up duped course and verify it doesn't load
call_command('import', self.content_dir, self.dupe_dir)
self.assertIsNone(store.get_course(self.DIFF_KEY))
def test_truncated_course_with_url(self): def test_truncated_course_with_url(self):
""" """
...@@ -87,8 +67,8 @@ class TestImport(ModuleStoreTestCase): ...@@ -87,8 +67,8 @@ class TestImport(ModuleStoreTestCase):
# 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)
store = modulestore() store = modulestore()
self.assertIsNotNone(store.get_course(self.BASE_COURSE_KEY)) self.assertIsNotNone(store.get_course(self.base_course_key))
# Now load up the course with a similar course_id and verify it loads # Now load up the course with a similar course_id and verify it loads
call_command('import', self.content_dir, self.course_dir) call_command('import', self.content_dir, self.course_dir)
self.assertIsNotNone(store.get_course(self.TRUNCATED_KEY)) self.assertIsNotNone(store.get_course(self.truncated_key))
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