Fix python 3.7 -> 3.7-dev and add flake8 testing

Also fixed flake8 errors.
openapi3
Cristi Vîjdea 2017-12-02 23:48:58 +01:00
parent fed253aeed
commit 93c51b992d
12 changed files with 42 additions and 24 deletions

View File

@ -1,13 +1,27 @@
language: python language: python
cache: pip
python: python:
- '3.5' - '3.5'
- '3.6' - '3.6'
- '3.7' - '3.7-dev'
matrix:
fast_finish: true
include:
- python: "3.5"
env: TOXENV=flake8
allow_failures:
- env: TOXENV=flake8
install: install:
- pip install -r requirements_dev.txt - pip install -r requirements_dev.txt
before_script: before_script:
- coverage erase - coverage erase
script: script:
- tox - tox
after_success: after_success:
- coveralls - coveralls

View File

@ -55,7 +55,7 @@ class _OpenAPICodec(BaseCodec):
def validators(self): def validators(self):
return self._validators return self._validators
def encode(self, document, **options): def encode(self, document, **_):
if not isinstance(document, openapi.Swagger): if not isinstance(document, openapi.Swagger):
raise TypeError('Expected a `openapi.Swagger` instance') raise TypeError('Expected a `openapi.Swagger` instance')

View File

@ -5,7 +5,7 @@ from django.utils.cache import add_never_cache_headers
from django.utils.decorators import available_attrs from django.utils.decorators import available_attrs
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from django.views.decorators.vary import vary_on_headers from django.views.decorators.vary import vary_on_headers
from rest_framework import exceptions, renderers from rest_framework import exceptions
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.settings import api_settings from rest_framework.settings import api_settings
from rest_framework.views import APIView from rest_framework.views import APIView
@ -14,7 +14,6 @@ from .generators import OpenAPISchemaGenerator
from .renderers import ( from .renderers import (
SwaggerJSONRenderer, SwaggerYAMLRenderer, SwaggerUIRenderer, ReDocRenderer, OpenAPIRenderer, SwaggerJSONRenderer, SwaggerYAMLRenderer, SwaggerUIRenderer, ReDocRenderer, OpenAPIRenderer,
) )
from .openapi import Info
SPEC_RENDERERS = (SwaggerYAMLRenderer, SwaggerJSONRenderer, OpenAPIRenderer) SPEC_RENDERERS = (SwaggerYAMLRenderer, SwaggerJSONRenderer, OpenAPIRenderer)
UI_RENDERERS = { UI_RENDERERS = {
@ -53,7 +52,7 @@ def get_schema_view(info, url=None, patterns=None, urlconf=None, *, public=False
""" """
Create a SchemaView class with default renderers and generators. Create a SchemaView class with default renderers and generators.
:param Info info: Required. Swagger API Info object :param drf_swagger.openapi.Info info: Required. Swagger API Info object
:param str url: API base url; if left blank will be deduced from the location the view is served at :param str url: API base url; if left blank will be deduced from the location the view is served at
:param str patterns: passed to SchemaGenerator :param str patterns: passed to SchemaGenerator
:param str urlconf: passed to SchemaGenerator :param str urlconf: passed to SchemaGenerator

View File

@ -11,7 +11,7 @@ if __name__ == "__main__":
# issue is really that Django is missing to avoid masking other # issue is really that Django is missing to avoid masking other
# exceptions on Python 2. # exceptions on Python 2.
try: try:
import django import django # noqa: F401
except ImportError: except ImportError:
raise ImportError( raise ImportError(
"Couldn't import Django. Are you sure it's installed and " "Couldn't import Django. Are you sure it's installed and "

View File

@ -1,3 +1 @@
from django.contrib import admin
# Register your models here. # Register your models here.

View File

@ -1,6 +1,5 @@
from rest_framework.status import HTTP_400_BAD_REQUEST
from rest_framework import serializers from rest_framework import serializers
from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES

View File

@ -1,9 +1,10 @@
import os import os
class PytestTestRunner(object): class PytestTestRunner(object):
"""Runs pytest to discover and run tests.""" """Runs pytest to discover and run tests."""
def __init__(self, verbosity=1, failfast=False, keepdb=False, **kwargs): def __init__(self, verbosity=1, failfast=False, keepdb=False, **_):
self.verbosity = verbosity self.verbosity = verbosity
self.failfast = failfast self.failfast = failfast
self.keepdb = keepdb self.keepdb = keepdb

View File

@ -1,7 +1,5 @@
import os import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

View File

@ -25,5 +25,5 @@ urlpatterns = [
url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=None), name='schema-redoc'), url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=None), name='schema-redoc'),
url(r'^admin/', admin.site.urls), url(r'^admin/', admin.site.urls),
url(f'^snippets/', include('snippets.urls')), url(r'^snippets/', include('snippets.urls')),
] ]

View File

@ -1,8 +1,7 @@
import pytest import pytest
from ruamel import yaml
from drf_swagger import openapi, codecs from drf_swagger import openapi, codecs
from drf_swagger.generators import OpenAPISchemaGenerator from drf_swagger.generators import OpenAPISchemaGenerator
from ruamel import yaml
@pytest.fixture @pytest.fixture

View File

@ -1,11 +1,9 @@
import json import json
from ruamel import yaml import pytest
from drf_swagger import openapi, codecs from drf_swagger import openapi, codecs
from drf_swagger.generators import OpenAPISchemaGenerator from drf_swagger.generators import OpenAPISchemaGenerator
from ruamel import yaml
import pytest
def validate_schema(swagger): def validate_schema(swagger):
@ -14,8 +12,8 @@ def validate_schema(swagger):
validate_flex(swagger) validate_flex(swagger)
validate_ssv(swagger) validate_ssv(swagger)
def test_schema_generates_without_errors(generator): def test_schema_generates_without_errors(generator):
generator.get_schema(None, True) generator.get_schema(None, True)

14
tox.ini
View File

@ -1,5 +1,6 @@
[tox] [tox]
envlist = py35,py36,py37 envlist = py35,py36,py37,flake8
[testenv] [testenv]
deps= deps=
-rrequirements.txt -rrequirements.txt
@ -7,3 +8,14 @@ deps=
-rrequirements_test.txt -rrequirements_test.txt
commands= commands=
pytest --cov-append --cov=drf_swagger pytest --cov-append --cov=drf_swagger
[testenv:flake8]
skip_install = true
deps=
flake8
commands=
flake8 drf_swagger testproj
[flake8]
max-line-length = 120
exclude = **/migrations/*