Bump query counts for grading in Django 1.11.

This commit is contained in:
John Eskew
2018-01-10 16:27:26 -05:00
committed by Troy Sankey
parent fda773721c
commit 3915c47d71

View File

@@ -10,6 +10,7 @@ from datetime import datetime, timedelta
import ddt
import pytz
import six
import django
from django.conf import settings
from django.db.utils import IntegrityError
from mock import MagicMock, patch
@@ -107,6 +108,28 @@ class HasCourseWithProblemsMixin(object):
# pylint: enable=attribute-defined-outside-init,no-member
# TODO: Remove Django 1.11 upgrade shim
# SHIM: Django 1.11 results in a few more SAVEPOINTs due to:
# https://github.com/django/django/commit/d44afd88#diff-5b0dda5eb9a242c15879dc9cd2121379L485
# Get rid of this logic post-upgrade.
def _recalc_expected_query_counts():
if django.VERSION >= (1, 11):
return 27
else:
return 23
# TODO: Remove Django 1.11 upgrade shim
# SHIM: Django 1.11 results in a few more SAVEPOINTs due to:
# https://github.com/django/django/commit/d44afd88#diff-5b0dda5eb9a242c15879dc9cd2121379L485
# Get rid of this logic post-upgrade.
def _recalc_persistent_expected_query_counts():
if django.VERSION >= (1, 11):
return 28
else:
return 24
@patch.dict(settings.FEATURES, {'PERSISTENT_GRADES_ENABLED_FOR_ALL_TESTS': False})
@ddt.ddt
class RecalculateSubsectionGradeTest(HasCourseWithProblemsMixin, ModuleStoreTestCase):
@@ -164,10 +187,10 @@ class RecalculateSubsectionGradeTest(HasCourseWithProblemsMixin, ModuleStoreTest
self.assertEquals(mock_block_structure_create.call_count, 1)
@ddt.data(
(ModuleStoreEnum.Type.mongo, 1, 23, True),
(ModuleStoreEnum.Type.mongo, 1, 23, False),
(ModuleStoreEnum.Type.split, 3, 23, True),
(ModuleStoreEnum.Type.split, 3, 23, False),
(ModuleStoreEnum.Type.mongo, 1, _recalc_expected_query_counts(), True),
(ModuleStoreEnum.Type.mongo, 1, _recalc_expected_query_counts(), False),
(ModuleStoreEnum.Type.split, 3, _recalc_expected_query_counts(), True),
(ModuleStoreEnum.Type.split, 3, _recalc_expected_query_counts(), False),
)
@ddt.unpack
def test_query_counts(self, default_store, num_mongo_calls, num_sql_calls, create_multiple_subsections):
@@ -179,8 +202,8 @@ class RecalculateSubsectionGradeTest(HasCourseWithProblemsMixin, ModuleStoreTest
self._apply_recalculate_subsection_grade()
@ddt.data(
(ModuleStoreEnum.Type.mongo, 1, 23),
(ModuleStoreEnum.Type.split, 3, 23),
(ModuleStoreEnum.Type.mongo, 1, _recalc_expected_query_counts()),
(ModuleStoreEnum.Type.split, 3, _recalc_expected_query_counts()),
)
@ddt.unpack
def test_query_counts_dont_change_with_more_content(self, default_store, num_mongo_calls, num_sql_calls):
@@ -240,8 +263,8 @@ class RecalculateSubsectionGradeTest(HasCourseWithProblemsMixin, ModuleStoreTest
self.assertEqual(len(PersistentSubsectionGrade.bulk_read_grades(self.user.id, self.course.id)), 0)
@ddt.data(
(ModuleStoreEnum.Type.mongo, 1, 24),
(ModuleStoreEnum.Type.split, 3, 24),
(ModuleStoreEnum.Type.mongo, 1, _recalc_persistent_expected_query_counts()),
(ModuleStoreEnum.Type.split, 3, _recalc_persistent_expected_query_counts()),
)
@ddt.unpack
def test_persistent_grades_enabled_on_course(self, default_store, num_mongo_queries, num_sql_queries):