当前位置: 首页>>代码示例>>Python>>正文


Python factories.check_mongo_calls函数代码示例

本文整理汇总了Python中xmodule.modulestore.tests.factories.check_mongo_calls函数的典型用法代码示例。如果您正苦于以下问题:Python check_mongo_calls函数的具体用法?Python check_mongo_calls怎么用?Python check_mongo_calls使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了check_mongo_calls函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_course_listing_performance

    def test_course_listing_performance(self, store, courses_list_from_group_calls, courses_list_calls):
        """
        Create large number of courses and give access of some of these courses to the user and
        compare the time to fetch accessible courses for the user through traversing all courses and
        reversing django groups
        """
        # create list of random course numbers which will be accessible to the user
        user_course_ids = random.sample(range(TOTAL_COURSES_COUNT), USER_COURSES_COUNT)

        # create courses and assign those to the user which have their number in user_course_ids
        with self.store.default_store(store):
            for number in range(TOTAL_COURSES_COUNT):
                org = 'Org{0}'.format(number)
                course = 'Course{0}'.format(number)
                run = 'Run{0}'.format(number)
                course_location = self.store.make_course_key(org, course, run)
                if number in user_course_ids:
                    self._create_course_with_access_groups(course_location, self.user, store=store)
                else:
                    self._create_course_with_access_groups(course_location, store=store)

        # time the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_1:
            courses_iter, __ = _accessible_courses_iter(self.request)
        self.assertEqual(len(list(courses_iter)), USER_COURSES_COUNT)

        # time again the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_2:
            courses_iter, __ = _accessible_courses_iter(self.request)
        self.assertEqual(len(list(courses_iter)), USER_COURSES_COUNT)

        # time the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_1:
            courses_list, __ = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time again the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_2:
            courses_list, __ = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # TODO (cdyer) : iteration over courses was optimized, and is now
        # sometimes faster than iteration over groups. One of the following
        # should be done to resolve this:
        # * Iteration over groups should be sped up.
        # * Iteration over groups should be removed, as it no longer saves time.
        # * Or this part of the test should be removed.

        # Test that the time taken by getting courses through reversing django
        # groups is lower then the time taken by traversing through all courses
        # (if accessible courses are relatively small).
        #self.assertGreaterEqual(iteration_over_courses_time_1.elapsed, iteration_over_groups_time_1.elapsed)
        #self.assertGreaterEqual(iteration_over_courses_time_2.elapsed, iteration_over_groups_time_2.elapsed)

        # Now count the db queries
        with check_mongo_calls(courses_list_from_group_calls):
            _accessible_courses_list_from_groups(self.request)

        with check_mongo_calls(courses_list_calls):
            list(_accessible_courses_iter(self.request))
开发者ID:Lektorium-LLC,项目名称:edx-platform,代码行数:60,代码来源:test_course_listing.py

示例2: test_dashboard_metadata_caching

    def test_dashboard_metadata_caching(self, modulestore_type):
        """
        Check that the student dashboard makes use of course metadata caching.

        After creating a course, that course's metadata should be cached as a
        CourseOverview. The student dashboard should never have to make calls to
        the modulestore.

        Arguments:
            modulestore_type (ModuleStoreEnum.Type): Type of modulestore to create
                test course in.

        Note to future developers:
            If you break this test so that the "check_mongo_calls(0)" fails,
            please do NOT change it to "check_mongo_calls(n>1)". Instead, change
            your code to not load courses from the module store. This may
            involve adding fields to CourseOverview so that loading a full
            CourseDescriptor isn't necessary.
        """
        # Create a course and log in the user.
        # Creating a new course will trigger a publish event and the course will be cached
        test_course = CourseFactory.create(default_store=modulestore_type, emit_signals=True)
        self.client.login(username="jack", password="test")

        with check_mongo_calls(0):
            CourseEnrollment.enroll(self.user, test_course.id)

        # Subsequent requests will only result in SQL queries to load the
        # CourseOverview object that has been created.
        with check_mongo_calls(0):
            response_1 = self.client.get(reverse('dashboard'))
            self.assertEquals(response_1.status_code, 200)
            response_2 = self.client.get(reverse('dashboard'))
            self.assertEquals(response_2.status_code, 200)
开发者ID:Stanford-Online,项目名称:edx-platform,代码行数:34,代码来源:tests.py

示例3: test_ccx_course_caching

 def test_ccx_course_caching(self):
     """verify that caching the propery works to limit queries"""
     with check_mongo_calls(1):
         # these statements are used entirely to demonstrate the
         # instance-level caching of these values on CCX objects. The
         # check_mongo_calls context is the point here.
         self.ccx.course  # pylint: disable=pointless-statement
     with check_mongo_calls(0):
         self.ccx.course  # pylint: disable=pointless-statement
开发者ID:alabs,项目名称:edx-platform,代码行数:9,代码来源:test_models.py

示例4: test_course_listing_performance

    def test_course_listing_performance(self):
        """
        Create large number of courses and give access of some of these courses to the user and
        compare the time to fetch accessible courses for the user through traversing all courses and
        reversing django groups
        """
        # create list of random course numbers which will be accessible to the user
        user_course_ids = random.sample(range(TOTAL_COURSES_COUNT), USER_COURSES_COUNT)

        # create courses and assign those to the user which have their number in user_course_ids
        for number in range(TOTAL_COURSES_COUNT):
            org = 'Org{0}'.format(number)
            course = 'Course{0}'.format(number)
            run = 'Run{0}'.format(number)
            course_location = SlashSeparatedCourseKey(org, course, run)
            if number in user_course_ids:
                self._create_course_with_access_groups(course_location, self.user)
            else:
                self._create_course_with_access_groups(course_location)

        # time the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_1:
            courses_list, __ = _accessible_courses_list(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time again the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_2:
            courses_list, __ = _accessible_courses_list(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_1:
            courses_list, __ = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time again the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_2:
            courses_list, __ = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # test that the time taken by getting courses through reversing django groups is lower then the time
        # taken by traversing through all courses (if accessible courses are relatively small)
        self.assertGreaterEqual(iteration_over_courses_time_1.elapsed, iteration_over_groups_time_1.elapsed)
        self.assertGreaterEqual(iteration_over_courses_time_2.elapsed, iteration_over_groups_time_2.elapsed)

        # Now count the db queries
        with check_mongo_calls(USER_COURSES_COUNT):
            _accessible_courses_list_from_groups(self.request)

        # Calls:
        #    1) query old mongo
        #    2) get_more on old mongo
        #    3) query split (but no courses so no fetching of data)
        with check_mongo_calls(3):
            _accessible_courses_list(self.request)
开发者ID:DevCode1,项目名称:edx-platform,代码行数:55,代码来源:test_course_listing.py

示例5: test_ccx_due_caching

 def test_ccx_due_caching(self):
     """verify that caching the due property works to limit queries"""
     expected = datetime.now(UTC())
     self.set_ccx_override('due', expected)
     with check_mongo_calls(1):
         # these statements are used entirely to demonstrate the
         # instance-level caching of these values on CCX objects. The
         # check_mongo_calls context is the point here.
         self.ccx.due  # pylint: disable=pointless-statement, no-member
     with check_mongo_calls(0):
         self.ccx.due  # pylint: disable=pointless-statement, no-member
开发者ID:alabs,项目名称:edx-platform,代码行数:11,代码来源:test_models.py

示例6: test_ccx_start_caching

 def test_ccx_start_caching(self):
     """verify that caching the start property works to limit queries"""
     now = datetime.now(utc)
     self.set_ccx_override("start", now)
     with check_mongo_calls(1):
         # these statements are used entirely to demonstrate the
         # instance-level caching of these values on CCX objects. The
         # check_mongo_calls context is the point here.
         self.ccx.start  # pylint: disable=pointless-statement, no-member
     with check_mongo_calls(0):
         self.ccx.start  # pylint: disable=pointless-statement, no-member
开发者ID:hastexo,项目名称:edx-platform,代码行数:11,代码来源:test_models.py

示例7: test_self_get_grade

    def test_self_get_grade(self):
        """
        Test that a user can successfully request her own grade.
        """
        with check_mongo_calls(6):
            resp = self.client.get(self.get_url(self.student.username))
            self.assertEqual(resp.status_code, status.HTTP_200_OK)

        # redo with block structure now in the cache
        with check_mongo_calls(3):
            resp = self.client.get(self.get_url(self.student.username))
            self.assertEqual(resp.status_code, status.HTTP_200_OK)
开发者ID:shevious,项目名称:edx-platform,代码行数:12,代码来源:test_views.py

示例8: test_course_listing_performance

    def test_course_listing_performance(self):
        """
        Create large number of courses and give access of some of these courses to the user and
        compare the time to fetch accessible courses for the user through traversing all courses and
        reversing django groups
        """
        # create list of random course numbers which will be accessible to the user
        user_course_ids = random.sample(range(TOTAL_COURSES_COUNT), USER_COURSES_COUNT)

        # create courses and assign those to the user which have their number in user_course_ids
        for number in range(TOTAL_COURSES_COUNT):
            org = "Org{0}".format(number)
            course = "Course{0}".format(number)
            run = "Run{0}".format(number)
            course_location = SlashSeparatedCourseKey(org, course, run)
            if number in user_course_ids:
                self._create_course_with_access_groups(course_location, self.user)
            else:
                self._create_course_with_access_groups(course_location)

        # time the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_1:
            courses_list = _accessible_courses_list(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time again the get courses by iterating through all courses
        with Timer() as iteration_over_courses_time_2:
            courses_list = _accessible_courses_list(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_1:
            courses_list = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # time again the get courses by reversing django groups
        with Timer() as iteration_over_groups_time_2:
            courses_list = _accessible_courses_list_from_groups(self.request)
        self.assertEqual(len(courses_list), USER_COURSES_COUNT)

        # test that the time taken by getting courses through reversing django groups is lower then the time
        # taken by traversing through all courses (if accessible courses are relatively small)
        self.assertGreaterEqual(iteration_over_courses_time_1.elapsed, iteration_over_groups_time_1.elapsed)
        self.assertGreaterEqual(iteration_over_courses_time_2.elapsed, iteration_over_groups_time_2.elapsed)

        # Now count the db queries
        store = modulestore()._get_modulestore_by_type(ModuleStoreEnum.Type.mongo)
        with check_mongo_calls(store.collection, USER_COURSES_COUNT):
            courses_list = _accessible_courses_list_from_groups(self.request)

        with check_mongo_calls(store.collection, 1):
            courses_list = _accessible_courses_list(self.request)
开发者ID:gtomar,项目名称:edx-platform,代码行数:52,代码来源:test_course_listing.py

示例9: test_query_counts_with_feature_flag

 def test_query_counts_with_feature_flag(self, default_store, feature_flag):
     PersistentGradesEnabledFlag.objects.create(enabled=feature_flag)
     with self.store.default_store(default_store):
         self.set_up_course()
         with check_mongo_calls(0):
             with self.assertNumQueries(3 if feature_flag else 2):
                 self._apply_recalculate_subsection_grade()
开发者ID:bryanlandia,项目名称:edx-platform,代码行数:7,代码来源:test_tasks.py

示例10: test_toc_toy_from_section

    def test_toc_toy_from_section(self, default_ms, setup_finds, setup_sends, toc_finds):
        with self.store.default_store(default_ms):
            self.setup_modulestore(default_ms, setup_finds, setup_sends)
            section = 'Welcome'
            expected = ([{'active': True, 'sections':
                          [{'url_name': 'Toy_Videos', 'display_name': u'Toy Videos', 'graded': True,
                            'format': u'Lecture Sequence', 'due': None, 'active': False},
                           {'url_name': 'Welcome', 'display_name': u'Welcome', 'graded': True,
                            'format': '', 'due': None, 'active': True},
                           {'url_name': 'video_123456789012', 'display_name': 'Test Video', 'graded': True,
                            'format': '', 'due': None, 'active': False},
                           {'url_name': 'video_4f66f493ac8f', 'display_name': 'Video', 'graded': True,
                            'format': '', 'due': None, 'active': False}],
                          'url_name': 'Overview', 'display_name': u'Overview'},
                         {'active': False, 'sections':
                          [{'url_name': 'toyvideo', 'display_name': 'toyvideo', 'graded': True,
                            'format': '', 'due': None, 'active': False}],
                          'url_name': 'secret:magic', 'display_name': 'secret:magic'}])

            with check_mongo_calls(toc_finds):
                actual = render.toc_for_course(
                    self.request, self.toy_course, self.chapter, section, self.field_data_cache
                )
            for toc_section in expected:
                self.assertIn(toc_section, actual)
开发者ID:akbargumbira,项目名称:Labster.EdX,代码行数:25,代码来源:test_module_render.py

示例11: test_number_of_mongo_queries

    def test_number_of_mongo_queries(self, default_store, num_thread_responses, num_mongo_calls, mock_request):

        with modulestore().default_store(default_store):
            course = CourseFactory.create()

        student = UserFactory.create()
        CourseEnrollmentFactory.create(user=student, course_id=course.id)

        test_thread_id = "test_thread_id"
        mock_request.side_effect = make_mock_request_impl(
            "dummy content",
            test_thread_id,
            num_thread_responses=num_thread_responses,
        )
        request = RequestFactory().get(
            "dummy_url",
            HTTP_X_REQUESTED_WITH="XMLHttpRequest"
        )
        request.user = student
        with check_mongo_calls(num_mongo_calls):
            response = views.single_thread(
                request,
                course.id.to_deprecated_string(),
                "dummy_discussion_id",
                test_thread_id
            )
            self.assertEquals(response.status_code, 200)
            self.assertEquals(len(json.loads(response.content)["content"]["children"]), num_thread_responses)
开发者ID:alexmerser,项目名称:lms,代码行数:28,代码来源:tests.py

示例12: test_course_staff_courses

    def test_course_staff_courses(self):
        CourseStaffRole(self.course_key).add_users(self.user)
        with check_mongo_calls(0):
            scopes, claims = self.get_id_token_values('openid course_staff')

        self.assertIn('course_staff', scopes)
        self.assertNotIn('staff_courses', claims)  # should not return courses in id_token
开发者ID:edx,项目名称:edx-platform,代码行数:7,代码来源:tests.py

示例13: test_request_instructor_courses_using_scope

 def test_request_instructor_courses_using_scope(self):
     CourseInstructorRole(self.course_key).add_users(self.user)
     with check_mongo_calls(0):
         claims = self.get_with_scope('course_instructor')
     courses = claims['instructor_courses']
     self.assertIn(self.course_id, courses)
     self.assertEqual(len(courses), 1)
开发者ID:nagyistoce,项目名称:edx-platform,代码行数:7,代码来源:tests.py

示例14: inner

 def inner(self, default_store, module_count, mongo_calls, sql_queries, *args, **kwargs):
     with modulestore().default_store(default_store):
         self.set_up_course(module_count=module_count)
         self.clear_caches()
         with self.assertNumQueries(sql_queries):
             with check_mongo_calls(mongo_calls):
                 func(self, *args, **kwargs)
开发者ID:rimolive,项目名称:edx-platform,代码行数:7,代码来源:tests.py

示例15: test_persistent_grades_not_enabled_on_course

 def test_persistent_grades_not_enabled_on_course(self, default_store):
     with self.store.default_store(default_store):
         self.set_up_course(enable_persistent_grades=False)
         self.assertFalse(PersistentGradesEnabledFlag.feature_enabled(self.course.id))
         with check_mongo_calls(0):
             with self.assertNumQueries(0):
                 self._apply_recalculate_subsection_grade()
开发者ID:shevious,项目名称:edx-platform,代码行数:7,代码来源:test_tasks.py


注:本文中的xmodule.modulestore.tests.factories.check_mongo_calls函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。