def tearDownClass(cls): drop_mongo_collections() # pylint: disable=no-value-for-parameter clear_all_caches() XMODULE_FACTORY_LOCK.disable() cls._settings_override.__exit__(None, None, None) super(SharedModuleStoreTestCase, cls).tearDownClass()
def tearDownClass(cls): drop_mongo_collections() # pylint: disable=no-value-for-parameter RequestCache().clear_request_cache() XMODULE_FACTORY_LOCK.disable() cls._settings_override.__exit__(None, None, None) super(SharedModuleStoreTestCase, cls).tearDownClass()
def handle(self, *args, **options): courses = modulestore().get_courses() # Find the largest auto-generated course, and pick the next sequence id to generate the next # course with. max_org_sequence_id = max( int(course.org[4:]) for course in courses if course.org.startswith('org.')) XMODULE_FACTORY_LOCK.enable() CourseFactory.reset_sequence(max_org_sequence_id + 1, force=True) course = CourseFactory.create( start=datetime.datetime.today() - datetime.timedelta(days=30), end=datetime.datetime.today() + datetime.timedelta(days=30), number=factory.Sequence('schedules_test_course_{}'.format), display_name=factory.Sequence('Schedules Test Course {}'.format), ) XMODULE_FACTORY_LOCK.disable() course_overview = CourseOverview.load_from_module_store(course.id) ThreeDayNudgeSchedule.create(enrollment__course=course_overview) TenDayNudgeSchedule.create(enrollment__course=course_overview) UpgradeReminderSchedule.create(enrollment__course=course_overview) ContentHighlightSchedule.create(enrollment__course=course_overview) ScheduleConfigFactory.create(site=Site.objects.get(name='example.com'))
def handle(self, *args, **options): courses = modulestore().get_courses() # Find the largest auto-generated course, and pick the next sequence id to generate the next # course with. max_org_sequence_id = max([0] + [ int(course.org[4:]) for course in courses if course.org.startswith('org.') ]) XMODULE_FACTORY_LOCK.enable() CourseFactory.reset_sequence(max_org_sequence_id + 1, force=True) course = CourseFactory.create( start=datetime.datetime.today() - datetime.timedelta(days=30), end=datetime.datetime.today() + datetime.timedelta(days=30), number=factory.Sequence('schedules_test_course_{}'.format), display_name=factory.Sequence(u'Schedules Test Course {}'.format), ) XMODULE_FACTORY_LOCK.disable() course_overview = CourseOverview.load_from_module_store(course.id) CourseModeFactory.create(course_id=course_overview.id, mode_slug=CourseMode.AUDIT) CourseModeFactory.create(course_id=course_overview.id, mode_slug=CourseMode.VERIFIED) CourseDurationLimitExpirySchedule.create_batch( 20, enrollment__course=course_overview) ScheduleConfigFactory.create(site=Site.objects.get(name='example.com'))
def setUpClass(cls): super(SharedModuleStoreTestCase, cls).setUpClass() cls._settings_override = override_settings(MODULESTORE=cls.MODULESTORE) cls._settings_override.__enter__() XMODULE_FACTORY_LOCK.enable() clear_existing_modulestores() cls.store = modulestore()
def _setUpModuleStore(cls): # pylint: disable=invalid-name """ Set up the modulestore for an entire test class. """ cls._settings_override = override_settings(MODULESTORE=cls.MODULESTORE) cls._settings_override.__enter__() XMODULE_FACTORY_LOCK.enable() clear_existing_modulestores() cls.store = modulestore()
def end_modulestore_isolation(cls): """ Delete all content in the Modulestore, and reset the Modulestore settings from before :py:meth:`start_modulestore_isolation` was called. """ drop_mongo_collections() # pylint: disable=no-value-for-parameter XMODULE_FACTORY_LOCK.disable() cls.__settings_overrides.pop().__exit__(None, None, None) assert settings.MODULESTORE == cls.__old_modulestores.pop() cls.end_cache_isolation()
def setUp(self, **kwargs): """ Creates a test User if `create_user` is True. Returns the password for the test User. Args: create_user - specifies whether or not to create a test User. Default is True. """ settings_override = override_settings(MODULESTORE=self.MODULESTORE) settings_override.__enter__() self.addCleanup(settings_override.__exit__, None, None, None) # Clear out any existing modulestores, # which will cause them to be re-created clear_existing_modulestores() self.addCleanup(drop_mongo_collections) self.addCleanup(clear_all_caches) # Enable XModuleFactories for the space of this test (and its setUp). self.addCleanup(XMODULE_FACTORY_LOCK.disable) XMODULE_FACTORY_LOCK.enable() # When testing CCX, we should make sure that # OverrideFieldData.provider_classes is always reset to `None` so # that they're recalculated for every test OverrideFieldData.provider_classes = None super(ModuleStoreTestCase, self).setUp() SignalHandler.course_published.disconnect( trigger_update_xblocks_cache_task) self.store = modulestore() uname = 'testuser' email = '*****@*****.**' password = '******' if kwargs.pop('create_user', True): # Create the user so we can log them in. self.user = User.objects.create_user(uname, email, password) # Note that we do not actually need to do anything # for registration if we directly mark them active. self.user.is_active = True # Staff has access to view all courses self.user.is_staff = True self.user.save() return password
def end_modulestore_isolation(cls): """ Delete all content in the Modulestore, and reset the Modulestore settings from before :py:meth:`start_modulestore_isolation` was called. """ drop_mongo_collections() # pylint: disable=no-value-for-parameter XMODULE_FACTORY_LOCK.disable() cls.__settings_overrides.pop().__exit__(None, None, None) assert settings.MODULESTORE == cls.__old_modulestores.pop() assert settings.CONTENTSTORE == cls.__old_contentstores.pop() cls.end_cache_isolation()
def setUp(self, **kwargs): """ Creates a test User if `create_user` is True. Returns the password for the test User. Args: create_user - specifies whether or not to create a test User. Default is True. """ settings_override = override_settings(MODULESTORE=self.MODULESTORE) settings_override.__enter__() self.addCleanup(settings_override.__exit__, None, None, None) # Clear out any existing modulestores, # which will cause them to be re-created clear_existing_modulestores() self.addCleanup(drop_mongo_collections) self.addCleanup(clear_all_caches) # Enable XModuleFactories for the space of this test (and its setUp). self.addCleanup(XMODULE_FACTORY_LOCK.disable) XMODULE_FACTORY_LOCK.enable() # When testing CCX, we should make sure that # OverrideFieldData.provider_classes is always reset to `None` so # that they're recalculated for every test OverrideFieldData.provider_classes = None super(ModuleStoreTestCase, self).setUp() SignalHandler.course_published.disconnect(trigger_update_xblocks_cache_task) self.store = modulestore() uname = 'testuser' email = '*****@*****.**' password = '******' if kwargs.pop('create_user', True): # Create the user so we can log them in. self.user = User.objects.create_user(uname, email, password) # Note that we do not actually need to do anything # for registration if we directly mark them active. self.user.is_active = True # Staff has access to view all courses self.user.is_staff = True self.user.save() return password
def start_modulestore_isolation(cls): """ Isolate uses of the modulestore after this call. Once :py:meth:`end_modulestore_isolation` is called, this modulestore will be flushed (all content will be deleted). """ cls.start_cache_isolation() override = override_settings( MODULESTORE=cls.MODULESTORE, ) cls.__old_modulestores.append(copy.deepcopy(settings.MODULESTORE)) override.__enter__() cls.__settings_overrides.append(override) XMODULE_FACTORY_LOCK.enable() clear_existing_modulestores() cls.store = modulestore()
def setUp(self, **kwargs): """ Creates a test User if `create_user` is True. Returns the password for the test User. Args: create_user - specifies whether or not to create a test User. Default is True. """ settings_override = override_settings(MODULESTORE=self.MODULESTORE) settings_override.__enter__() self.addCleanup(settings_override.__exit__, None, None, None) # Clear out any existing modulestores, # which will cause them to be re-created clear_existing_modulestores() self.addCleanup(self.drop_mongo_collections) self.addCleanup(RequestCache().clear_request_cache) # Enable XModuleFactories for the space of this test (and its setUp). self.addCleanup(XMODULE_FACTORY_LOCK.disable) XMODULE_FACTORY_LOCK.enable() super(ModuleStoreTestCase, self).setUp() self.store = modulestore() uname = 'testuser' email = '*****@*****.**' password = '******' if kwargs.pop('create_user', True): # Create the user so we can log them in. self.user = User.objects.create_user(uname, email, password) # Note that we do not actually need to do anything # for registration if we directly mark them active. self.user.is_active = True # Staff has access to view all courses self.user.is_staff = True self.user.save() return password
def start_modulestore_isolation(cls): """ Isolate uses of the modulestore after this call. Once :py:meth:`end_modulestore_isolation` is called, this modulestore will be flushed (all content will be deleted). """ cls.start_cache_isolation() override = override_settings( MODULESTORE=cls.MODULESTORE(), CONTENTSTORE=cls.CONTENTSTORE(), ) cls.__old_modulestores.append(copy.deepcopy(settings.MODULESTORE)) cls.__old_contentstores.append(copy.deepcopy(settings.CONTENTSTORE)) override.__enter__() cls.__settings_overrides.append(override) XMODULE_FACTORY_LOCK.enable() clear_existing_modulestores() cls.store = modulestore()
def start_modulestore_isolation(cls): """ Isolate uses of the modulestore after this call. Once :py:meth:`end_modulestore_isolation` is called, this modulestore will be flushed (all content will be deleted). """ cls.disable_all_signals() cls.enable_signals_by_name(*cls.ENABLED_SIGNALS) cls.start_cache_isolation() override = override_settings( MODULESTORE=cls.MODULESTORE(), CONTENTSTORE=cls.CONTENTSTORE(), ) cls.__old_modulestores.append(copy.deepcopy(settings.MODULESTORE)) cls.__old_contentstores.append(copy.deepcopy(settings.CONTENTSTORE)) override.__enter__() cls.__settings_overrides.append(override) XMODULE_FACTORY_LOCK.enable() clear_existing_modulestores() cls.store = modulestore()
def handle(self, *args, **options): courses = modulestore().get_courses() # Find the largest auto-generated course, and pick the next sequence id to generate the next # course with. max_org_sequence_id = max([0] + [int(course.org[4:]) for course in courses if course.org.startswith('org.')]) XMODULE_FACTORY_LOCK.enable() CourseFactory.reset_sequence(max_org_sequence_id + 1, force=True) course = CourseFactory.create( start=datetime.datetime.today() - datetime.timedelta(days=30), end=datetime.datetime.today() + datetime.timedelta(days=30), number=factory.Sequence('schedules_test_course_{}'.format), display_name=factory.Sequence(u'Schedules Test Course {}'.format), ) XMODULE_FACTORY_LOCK.disable() course_overview = CourseOverview.load_from_module_store(course.id) CourseModeFactory.create(course_id=course_overview.id, mode_slug=CourseMode.AUDIT) CourseModeFactory.create(course_id=course_overview.id, mode_slug=CourseMode.VERIFIED) CourseDurationLimitExpirySchedule.create_batch(20, enrollment__course=course_overview) ScheduleConfigFactory.create(site=Site.objects.get(name='example.com'))
def handle(self, *args, **options): courses = modulestore().get_courses() # Find the largest auto-generated course, and pick the next sequence id to generate the next # course with. max_org_sequence_id = max(int(course.org[4:]) for course in courses if course.org.startswith('org.')) XMODULE_FACTORY_LOCK.enable() CourseFactory.reset_sequence(max_org_sequence_id + 1, force=True) course = CourseFactory.create( start=datetime.datetime.today() - datetime.timedelta(days=30), end=datetime.datetime.today() + datetime.timedelta(days=30), number=factory.Sequence('schedules_test_course_{}'.format), display_name=factory.Sequence('Schedules Test Course {}'.format), ) XMODULE_FACTORY_LOCK.disable() course_overview = CourseOverview.load_from_module_store(course.id) ThreeDayNudgeSchedule.create(enrollment__course=course_overview) TenDayNudgeSchedule.create(enrollment__course=course_overview) UpgradeReminderSchedule.create(enrollment__course=course_overview) ContentHighlightSchedule.create(enrollment__course=course_overview) ScheduleConfigFactory.create(site=Site.objects.get(name='example.com'))