Merge pull request #18966 from edx/cliff/completion-tests

Fix query counts on completion tests.
This commit is contained in:
Cliff Dyer
2018-09-19 12:27:27 -04:00
committed by GitHub
7 changed files with 31 additions and 23 deletions

View File

@@ -13,6 +13,11 @@ from opaque_keys.edx.keys import CourseKey, UsageKey
from openedx.core.djangolib.testing.utils import skip_unless_lms
from student.tests.factories import CourseEnrollmentFactory, UserFactory
SELECT = 1
UPDATE = 1
SAVEPOINT = 1
OTHER = 1
@skip_unless_lms
class PercentValidatorTestCase(TestCase):
@@ -56,7 +61,8 @@ class SubmitCompletionTestCase(CompletionSetUpMixin, TestCase):
self.set_up_completion()
def test_changed_value(self):
with self.assertNumQueries(4): # Get, update, 2 * savepoints
with self.assertNumQueries(SELECT + UPDATE + 2 * SAVEPOINT + 2 * OTHER):
# OTHER = user exists, completion exists
completion, isnew = models.BlockCompletion.objects.submit_completion(
user=self.user,
course_key=self.block_key.course_key,
@@ -69,7 +75,7 @@ class SubmitCompletionTestCase(CompletionSetUpMixin, TestCase):
self.assertEqual(models.BlockCompletion.objects.count(), 1)
def test_unchanged_value(self):
with self.assertNumQueries(1): # Get
with self.assertNumQueries(SELECT + 2 * SAVEPOINT):
completion, isnew = models.BlockCompletion.objects.submit_completion(
user=self.user,
course_key=self.block_key.course_key,
@@ -83,7 +89,7 @@ class SubmitCompletionTestCase(CompletionSetUpMixin, TestCase):
def test_new_user(self):
newuser = UserFactory()
with self.assertNumQueries(4): # Get, update, 2 * savepoints
with self.assertNumQueries(SELECT + UPDATE + 4 * SAVEPOINT):
_, isnew = models.BlockCompletion.objects.submit_completion(
user=newuser,
course_key=self.block_key.course_key,
@@ -95,7 +101,7 @@ class SubmitCompletionTestCase(CompletionSetUpMixin, TestCase):
def test_new_block(self):
newblock = UsageKey.from_string(u'block-v1:edx+test+run+type@video+block@puppers')
with self.assertNumQueries(4): # Get, update, 2 * savepoints
with self.assertNumQueries(SELECT + UPDATE + 4 * SAVEPOINT):
_, isnew = models.BlockCompletion.objects.submit_completion(
user=self.user,
course_key=newblock.course_key,

View File

@@ -30,4 +30,4 @@ scipy==0.14.0
singledispatch==3.4.0.3 # via tornado
six==1.11.0
sympy==0.7.1
tornado==5.1 # via matplotlib
tornado==5.1.1 # via matplotlib

View File

@@ -112,7 +112,7 @@ edx-ace==0.1.9
edx-analytics-data-api-client==0.14.4
edx-ccx-keys==0.2.1
edx-celeryutils==0.2.7
edx-completion==0.1.9
edx-completion==0.1.10
edx-django-oauth2-provider==1.3.4
edx-django-release-util==0.3.1
edx-django-sites-extensions==2.3.1
@@ -169,7 +169,7 @@ mock==1.0.1
mongoengine==0.10.0
mysql-python==1.2.5
networkx==1.7
newrelic==4.2.0.100
newrelic==4.4.0.103
nltk==3.3.0
nodeenv==1.1.1
numpy==1.6.2
@@ -242,5 +242,5 @@ webob==1.8.2 # via xblock
wrapt==1.10.5
xblock-review==1.1.5
xblock-utils==1.2.0
xblock==1.2.1
xblock==1.2.2
zendesk==1.1.1

View File

@@ -9,5 +9,5 @@
# * confirm that it has no system requirements beyond what we already install
# * run "make upgrade" to update the detailed requirements files
#
coverage==4.2 # Code coverage testing for Python
coverage==4.4 # Code coverage testing for Python
diff-cover==0.9.8 # Automatically find diff lines that need test coverage

View File

@@ -4,7 +4,7 @@
#
# make upgrade
#
coverage==4.2
coverage==4.4
diff-cover==0.9.8
inflect==1.0.0 # via jinja2-pluralize
jinja2-pluralize==0.3.0 # via diff-cover

View File

@@ -77,7 +77,7 @@ configparser==3.5.0
constantly==15.1.0
coreapi==2.3.3
coreschema==0.0.4
coverage==4.2
coverage==4.4
cryptography==2.3.1
cssselect==1.0.3
cssutils==1.0.2
@@ -131,7 +131,7 @@ edx-ace==0.1.9
edx-analytics-data-api-client==0.14.4
edx-ccx-keys==0.2.1
edx-celeryutils==0.2.7
edx-completion==0.1.9
edx-completion==0.1.10
edx-django-oauth2-provider==1.3.4
edx-django-release-util==0.3.1
edx-django-sites-extensions==2.3.1
@@ -157,7 +157,7 @@ event-tracking==0.2.4
execnet==1.5.0
extras==1.0.0
factory_boy==2.8.1
faker==0.9.0
faker==0.9.1
feedparser==5.1.3
firebase-token-generator==1.3.2
first==2.0.1
@@ -217,7 +217,7 @@ more-itertools==4.3.0
moto==0.3.1
mysql-python==1.2.5
networkx==1.7
newrelic==4.2.0.100
newrelic==4.4.0.103
nltk==3.3.0
nodeenv==1.1.1
numpy==1.6.2
@@ -312,7 +312,7 @@ social-auth-app-django==2.1.0
social-auth-core==1.7.0
sorl-thumbnail==12.3
sortedcontainers==0.9.2
sphinx==1.7.9
sphinx==1.8.0
sphinxcontrib-websupport==1.1.0 # via sphinx
splinter==0.9.0
sqlparse==0.2.4
@@ -323,8 +323,9 @@ testfixtures==6.3.0
testtools==2.3.0
text-unidecode==1.2
tincan==0.0.5
toml==0.9.6
tox-battery==0.5.1
tox==3.2.1
tox==3.3.0
traceback2==1.4.0
transifex-client==0.13.4
twisted==16.6.0
@@ -347,7 +348,7 @@ werkzeug==0.14.1
wrapt==1.10.5
xblock-review==1.1.5
xblock-utils==1.2.0
xblock==1.2.1
xblock==1.2.2
xmltodict==0.11.0
zendesk==1.1.1
zope.interface==4.5.0

View File

@@ -74,7 +74,7 @@ configparser==3.5.0 # via flake8, pylint
constantly==15.1.0 # via twisted
coreapi==2.3.3
coreschema==0.0.4
coverage==4.2
coverage==4.4
cryptography==2.3.1
cssselect==1.0.3
cssutils==1.0.2
@@ -126,7 +126,7 @@ edx-ace==0.1.9
edx-analytics-data-api-client==0.14.4
edx-ccx-keys==0.2.1
edx-celeryutils==0.2.7
edx-completion==0.1.9
edx-completion==0.1.10
edx-django-oauth2-provider==1.3.4
edx-django-release-util==0.3.1
edx-django-sites-extensions==2.3.1
@@ -151,7 +151,7 @@ event-tracking==0.2.4
execnet==1.5.0 # via pytest-xdist
extras==1.0.0 # via python-subunit, testtools
factory_boy==2.8.1
faker==0.9.0 # via factory-boy
faker==0.9.1 # via factory-boy
feedparser==5.1.3
firebase-token-generator==1.3.2
fixtures==3.0.0 # via testtools
@@ -208,7 +208,7 @@ more-itertools==4.3.0 # via pytest
moto==0.3.1
mysql-python==1.2.5
networkx==1.7
newrelic==4.2.0.100
newrelic==4.4.0.103
nltk==3.3.0
nodeenv==1.1.1
numpy==1.6.2
@@ -307,8 +307,9 @@ testfixtures==6.3.0
testtools==2.3.0 # via fixtures, python-subunit
text-unidecode==1.2 # via faker
tincan==0.0.5
toml==0.9.6 # via tox
tox-battery==0.5.1
tox==3.2.1
tox==3.3.0
traceback2==1.4.0 # via testtools, unittest2
transifex-client==0.13.4
twisted==16.6.0 # via pa11ycrawler, scrapy
@@ -329,7 +330,7 @@ werkzeug==0.14.1 # via flask
wrapt==1.10.5
xblock-review==1.1.5
xblock-utils==1.2.0
xblock==1.2.1
xblock==1.2.2
xmltodict==0.11.0 # via moto
zendesk==1.1.1
zope.interface==4.5.0 # via twisted