Added mypy and django-stubs to Py3 requirements, and added a mypy test case.
- Legacy-Id: 16768
This commit is contained in:
parent
4ed73d2ba9
commit
2d858f2e0a
|
@ -66,7 +66,7 @@ from django.template import TemplateDoesNotExist
|
|||
from django.template.loaders.base import Loader as BaseLoader
|
||||
from django.test.runner import DiscoverRunner
|
||||
from django.core.management import call_command
|
||||
from django.urls import RegexURLResolver
|
||||
from django.urls import RegexURLResolver # type: ignore
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
debug.debug = True
|
||||
|
@ -138,6 +138,20 @@ class PyFlakesTestCase(TestCase):
|
|||
warnings = pyflakes.checkPaths([path], verbosity=0)
|
||||
self.assertEqual([], [str(w) for w in warnings])
|
||||
|
||||
class MyPyTest(TestCase):
|
||||
|
||||
def __init__(self, test_runner=None, **kwargs):
|
||||
self.runner = test_runner
|
||||
super(MyPyTest, self).__init__(**kwargs)
|
||||
|
||||
@unittest.skipIf(sys.version_info[0] < 3, "Mypy and django-stubs not available under Py2")
|
||||
def mypy_test(self):
|
||||
from mypy import api
|
||||
out, err, code = api.run(['ietf', ])
|
||||
self.assertEqual([], err.splitlines())
|
||||
self.assertEqual([], out.splitlines())
|
||||
self.assertEqual(code, 0)
|
||||
|
||||
class TemplateCoverageLoader(BaseLoader):
|
||||
is_usable = True
|
||||
|
||||
|
@ -146,7 +160,7 @@ class TemplateCoverageLoader(BaseLoader):
|
|||
if template_coverage_collection == True:
|
||||
loaded_templates.add(str(template_name))
|
||||
raise TemplateDoesNotExist(template_name)
|
||||
load_template_source.is_usable = True
|
||||
load_template_source.is_usable = True # type: ignore # https://github.com/python/mypy/issues/2087
|
||||
|
||||
def record_urls_middleware(get_response):
|
||||
def record_urls(request):
|
||||
|
@ -694,6 +708,7 @@ class IetfTestRunner(DiscoverRunner):
|
|||
url_coverage_collection = True
|
||||
extra_tests += [
|
||||
PyFlakesTestCase(test_runner=self, methodName='pyflakes_test'),
|
||||
MyPyTest(test_runner=self, methodName='mypy_test'),
|
||||
CoverageTest(test_runner=self, methodName='interleaved_migrations_test'),
|
||||
CoverageTest(test_runner=self, methodName='url_coverage_test'),
|
||||
CoverageTest(test_runner=self, methodName='template_coverage_test'),
|
||||
|
@ -705,7 +720,7 @@ class IetfTestRunner(DiscoverRunner):
|
|||
# parent classes to later subclasses, the parent classes will
|
||||
# determine the ordering, so use the most specific classes
|
||||
# necessary to get the right ordering:
|
||||
self.reorder_by = (PyFlakesTestCase, ) + self.reorder_by + (StaticLiveServerTestCase, TemplateTagTest, CoverageTest, )
|
||||
self.reorder_by = (PyFlakesTestCase, MyPyTest, ) + self.reorder_by + (StaticLiveServerTestCase, TemplateTagTest, CoverageTest, )
|
||||
|
||||
failures = super(IetfTestRunner, self).run_tests(test_labels, extra_tests=extra_tests, **kwargs)
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ django-markup>=1.1
|
|||
django-password-strength>=1.2.1
|
||||
django-referrer-policy>=1.0
|
||||
django-simple-history>=2.3.0
|
||||
django-stubs>=1.1.0
|
||||
django-tastypie>=0.13.2
|
||||
django-webtest>=1.9.7
|
||||
django-widget-tweaks>=1.3
|
||||
|
@ -35,6 +36,7 @@ jwcrypto>=0.4.0 # for signed notifications
|
|||
#lxml>=3.4.0 # from PyQuery;
|
||||
markdown2>=2.3.8
|
||||
mock>=2.0.0
|
||||
mypy>=0.7.3
|
||||
mysqlclient>=1.3.13
|
||||
oauth2client>=4.0.0 # required by google-api-python-client, but not always pulled in
|
||||
patch>=1.16,<2.0
|
||||
|
|
Loading…
Reference in a new issue