def test_forum_seed(self): """ Tests that forum roles were created with import. """ self.assertFalse(are_permissions_roles_seeded('/'.join(self.BASE_COURSE_ID))) call_command('import', self.content_dir, self.good_dir) self.assertTrue(are_permissions_roles_seeded('/'.join(self.BASE_COURSE_ID)))
def test_forum_seed(self): """ Tests that forum roles were created with import. """ 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_forum_seed(self): """ Tests that forum roles were created with import. """ 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 handle(self, *args, **options): "Execute the command" if len(args) == 0: raise CommandError("import requires at least one argument: <data directory> [--nostatic] [<course dir>...]") data_dir = args[0] do_import_static = not (options.get('nostatic', False)) if len(args) > 1: course_dirs = args[1:] else: course_dirs = None self.stdout.write("Importing. Data_dir={data}, course_dirs={courses}\n".format( data=data_dir, courses=course_dirs, dis=do_import_static)) try: mstore = modulestore('direct') except KeyError: self.stdout.write('Unable to load direct modulestore, trying ' 'default\n') mstore = modulestore('default') _, course_items = import_from_xml( mstore, data_dir, course_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, create_new_course_if_not_present=True, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write('Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def test_create_course_check_forum_seeding(self): """Test new course creation and verify forum seeding """ resp = self.client.post(reverse('create_new_course'), self.course_data) self.assertEqual(resp.status_code, 200) data = parse_json(resp) self.assertEqual(data['id'], 'i4x://MITx/999/course/Robot_Super_Course') self.assertTrue(are_permissions_roles_seeded('MITx/999/Robot_Super_Course'))
def handle(self, *args, **options): "Execute the command" if len(args) == 0: raise CommandError("import requires at least one argument: <data directory> [--nostatic] [<course dir>...]") data_dir = args[0] do_import_static = not options.get('nostatic', False) if len(args) > 1: source_dirs = args[1:] else: source_dirs = None self.stdout.write("Importing. Data_dir={data}, source_dirs={courses}\n".format( data=data_dir, courses=source_dirs, )) mstore = modulestore() course_items = import_course_from_xml( mstore, ModuleStoreEnum.UserID.mgmt_command, data_dir, source_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, create_if_not_present=True, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write('Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def handle(self, *args, **options): data_dir = options['data_directory'] do_import_static = not options['nostatic'] source_dirs = options['course_dirs'] if len(source_dirs) == 0: source_dirs = None self.stdout.write( "Importing. Data_dir={data}, source_dirs={courses}\n".format( data=data_dir, courses=source_dirs, )) mstore = modulestore() course_items = import_course_from_xml( mstore, ModuleStoreEnum.UserID.mgmt_command, data_dir, source_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, create_if_not_present=True, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write( 'Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def handle(self, *args, **options): "Execute the command" if len(args) == 0: raise CommandError("import requires at least one argument: <data directory> [--nostatic] [<course dir>...]") data_dir = args[0] do_import_static = not (options.get('nostatic', False)) if len(args) > 1: course_dirs = args[1:] else: course_dirs = None self.stdout.write("Importing. Data_dir={data}, course_dirs={courses}\n".format( data=data_dir, courses=course_dirs, dis=do_import_static)) try: mstore = modulestore('direct') except KeyError: self.stdout.write('Unable to load direct modulestore, trying ' 'default\n') mstore = modulestore('default') _, course_items = import_from_xml( mstore, data_dir, course_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static ) for module in course_items: course_id = module.location.course_id if not are_permissions_roles_seeded(course_id): self.stdout.write('Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def import_single_course(filename): print >> sys.stderr, 'IMPORTING course:', filename course_id, course_run = _filename_to_id_and_run(filename) course_full_id = 'course-v1:Microsoft+{id}+{run}'.format(id=course_id, run=course_run) course_xml_dir = path.join( XML_EXTRACT_DIR, '{id}-{run}'.format(id=course_id, run=course_run)) mkdir(course_xml_dir) subprocess.call(['tar', '-xzf', filename, '-C', course_xml_dir]) _fix_library_source_bug(course_xml_dir) print >> sys.stderr, 'IMPORTING course:', course_full_id course_items = import_course_from_xml( store=MOD_STORE, user_id=ModuleStoreEnum.UserID.mgmt_command, data_dir=DATA_DIR, source_dirs=[path.join(course_xml_dir, 'course')], # Open edX needs `course` dir load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=True, target_id=CourseKey.from_string(course_full_id), create_if_not_present=True, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): print >> sys.stderr, 'Seeding forum roles for course', course_id seed_permissions_roles(course_id)
def handle(self, *args, **options): data_dir = options['data_directory'] source_dirs = options['course_dirs'] if len(source_dirs) == 0: source_dirs = None do_import_static = not options.get('nostatic', False) # If the static content is not skipped, the python lib should be imported regardless # of the 'nopythonlib' flag. do_import_python_lib = do_import_static or not options.get( 'nopythonlib', False) python_lib_filename = options.get('python_lib_filename') output = ("Importing...\n" " data_dir={data}, source_dirs={courses}\n" " Importing static content? {import_static}\n" " Importing python lib? {import_python_lib}").format( data=data_dir, courses=source_dirs, import_static=do_import_static, import_python_lib=do_import_python_lib) self.stdout.write(output) mstore = modulestore() course_items = import_course_from_xml( mstore, ModuleStoreEnum.UserID.mgmt_command, data_dir, source_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, do_import_python_lib=do_import_python_lib, create_if_not_present=True, python_lib_filename=python_lib_filename, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write( 'Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def handle(self, *args, **options): "Execute the command" if len(args) == 0: raise CommandError( "import requires at least one argument: <data directory> [--nostatic] [<course dir>...]" ) data_dir = args[0] do_import_static = not (options.get('nostatic', False)) if len(args) > 1: source_dirs = args[1:] else: source_dirs = None self.stdout.write( "Importing. Data_dir={data}, source_dirs={courses}\n".format( data=data_dir, courses=source_dirs, )) mstore = modulestore() course_items = import_course_from_xml( mstore, ModuleStoreEnum.UserID.mgmt_command, data_dir, source_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, create_if_not_present=True, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write( 'Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)
def handle(self, *args, **options): data_dir = options['data_directory'] source_dirs = options['course_dirs'] if len(source_dirs) == 0: source_dirs = None do_import_static = not options.get('nostatic', False) # If the static content is not skipped, the python lib should be imported regardless # of the 'nopythonlib' flag. do_import_python_lib = do_import_static or not options.get('nopythonlib', False) python_lib_filename = options.get('python_lib_filename') output = ( "Importing...\n" " data_dir={data}, source_dirs={courses}\n" " Importing static content? {import_static}\n" " Importing python lib? {import_python_lib}" ).format( data=data_dir, courses=source_dirs, import_static=do_import_static, import_python_lib=do_import_python_lib ) self.stdout.write(output) mstore = modulestore() course_items = import_course_from_xml( mstore, ModuleStoreEnum.UserID.mgmt_command, data_dir, source_dirs, load_error_modules=False, static_content_store=contentstore(), verbose=True, do_import_static=do_import_static, do_import_python_lib=do_import_python_lib, create_if_not_present=True, python_lib_filename=python_lib_filename, ) for course in course_items: course_id = course.id if not are_permissions_roles_seeded(course_id): self.stdout.write('Seeding forum roles for course {0}\n'.format(course_id)) seed_permissions_roles(course_id)