Skip to content

Commit

Permalink
🔥 Removes 1.6 references in tests
Browse files Browse the repository at this point in the history
Signed-off-by: Jeff Triplett <jeff.triplett@gmail.com>
  • Loading branch information
jefftriplett committed Oct 18, 2017
1 parent 9657553 commit aa85b1c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 68 deletions.
63 changes: 21 additions & 42 deletions test_plus/test.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
import warnings

import django
from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Permission
from django.core.exceptions import ImproperlyConfigured
from django.shortcuts import resolve_url
from django.db import connections, DEFAULT_DB_ALIAS
from django.db.models import Q
from distutils.version import LooseVersion
from django.shortcuts import resolve_url
from django.test import RequestFactory, signals, TestCase as DjangoTestCase
from django.test.client import store_rendered_templates
from django.test.utils import CaptureQueriesContext
from django.utils.functional import curry

from .compat import reverse, NoReverseMatch
Expand All @@ -19,48 +17,29 @@ class NoPreviousResponse(Exception):
pass


# Build a real context in versions of Django greater than 1.6
# On versions below 1.6, create a context that simply warns that
# the query number assertion is not happening
if LooseVersion(django.get_version()) >= LooseVersion('1.6'):
from django.test.utils import CaptureQueriesContext
from django.contrib.auth import get_user_model

User = get_user_model()

CAPTURE = True

class _AssertNumQueriesLessThanContext(CaptureQueriesContext):
def __init__(self, test_case, num, connection):
self.test_case = test_case
self.num = num
super(_AssertNumQueriesLessThanContext, self).__init__(connection)

def __exit__(self, exc_type, exc_value, traceback):
super(_AssertNumQueriesLessThanContext, self).__exit__(exc_type, exc_value, traceback)
if exc_type is not None:
return
executed = len(self)
self.test_case.assertTrue(
executed < self.num, "%d queries executed, expected less than %d" % (
executed, self.num
)
)
# Build a real context

else:
from django.contrib.auth.models import User
User = get_user_model()

CAPTURE = False
CAPTURE = True

class _AssertNumQueriesLessThanContext(object):
def __init__(self, test_case, num, connection):
pass

def __enter__(self):
pass
class _AssertNumQueriesLessThanContext(CaptureQueriesContext):
def __init__(self, test_case, num, connection):
self.test_case = test_case
self.num = num
super(_AssertNumQueriesLessThanContext, self).__init__(connection)

def __exit__(self, exc_type, exc_value, traceback):
warnings.warn("assertNumQueriesLessThan being skipped, does not work prior to Django 1.6")
def __exit__(self, exc_type, exc_value, traceback):
super(_AssertNumQueriesLessThanContext, self).__exit__(exc_type, exc_value, traceback)
if exc_type is not None:
return
executed = len(self)
self.test_case.assertTrue(
executed < self.num, "%d queries executed, expected less than %d" % (
executed, self.num
)
)


class login(object):
Expand Down
29 changes: 3 additions & 26 deletions test_project/test_app/tests.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import django
import factory
import sys
import unittest
import warnings

from contextlib import contextmanager
from distutils.version import LooseVersion

import sys
from django.contrib.auth import get_user_model

try:
from StringIO import StringIO
Expand All @@ -27,13 +25,8 @@
CBView,
)

DJANGO_16 = LooseVersion(django.get_version()) >= LooseVersion('1.6')

if DJANGO_16:
from django.contrib.auth import get_user_model
User = get_user_model()
else:
from django.contrib.auth.models import User
User = get_user_model()


@contextmanager
Expand Down Expand Up @@ -342,25 +335,9 @@ def test_assertnumqueries_data_5(self):

@unittest.expectedFailure
def test_assertnumqueries_failure(self):
if not DJANGO_16:
return unittest.skip('Does not work before Django 1.6')

with self.assertNumQueriesLessThan(1):
self.get('view-data-5')

def test_assertnumqueries_warning(self):
if not DJANGO_16:
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')

with self.assertNumQueriesLessThan(1):
self.get('view-data-1')

self.assertEqual(len(w), 1)
self.assertTrue('skipped' in str(w[-1].message))
else:
return unittest.skip('Only useful for Django 1.6 and before')

def test_assertincontext(self):
response = self.get('view-context-with')
self.assertTrue('testvalue' in response.context)
Expand Down

0 comments on commit aa85b1c

Please sign in to comment.