Fix test_noop_inspectors
parent
d39764d383
commit
22853b87c7
|
|
@ -126,6 +126,8 @@ class Command(BaseCommand):
|
||||||
if output_file == '-':
|
if output_file == '-':
|
||||||
self.write_schema(schema, self.stdout, format)
|
self.write_schema(schema, self.stdout, format)
|
||||||
else:
|
else:
|
||||||
|
# normally this would be easily done with open(mode='x'/'w'),
|
||||||
|
# but python 2 is a pain in the ass as usual
|
||||||
flags = os.O_CREAT | os.O_WRONLY
|
flags = os.O_CREAT | os.O_WRONLY
|
||||||
flags = flags | (os.O_TRUNC if overwrite else os.O_EXCL)
|
flags = flags | (os.O_TRUNC if overwrite else os.O_EXCL)
|
||||||
with os.fdopen(os.open(output_file, flags), "w") as stream:
|
with os.fdopen(os.open(output_file, flags), "w") as stream:
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ from rest_framework.settings import api_settings
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from drf_yasg.app_settings import swagger_settings
|
from drf_yasg.app_settings import swagger_settings
|
||||||
|
|
||||||
from .generators import OpenAPISchemaGenerator
|
from .generators import OpenAPISchemaGenerator
|
||||||
from .renderers import OpenAPIRenderer, ReDocRenderer, SwaggerJSONRenderer, SwaggerUIRenderer, SwaggerYAMLRenderer
|
from .renderers import OpenAPIRenderer, ReDocRenderer, SwaggerJSONRenderer, SwaggerUIRenderer, SwaggerYAMLRenderer
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ from django.contrib.auth.models import User
|
||||||
from rest_framework.test import APIRequestFactory
|
from rest_framework.test import APIRequestFactory
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
from drf_yasg import openapi, codecs
|
from drf_yasg import codecs, openapi
|
||||||
from drf_yasg.codecs import yaml_sane_load, yaml_sane_dump
|
from drf_yasg.codecs import yaml_sane_dump, yaml_sane_load
|
||||||
from drf_yasg.generators import OpenAPISchemaGenerator
|
from drf_yasg.generators import OpenAPISchemaGenerator
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -47,8 +47,8 @@ def swagger(mock_schema_request):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def swagger_dict(swagger):
|
def swagger_dict(swagger, codec_json):
|
||||||
json_bytes = codec_json().encode(swagger)
|
json_bytes = codec_json.encode(swagger)
|
||||||
return json.loads(json_bytes.decode('utf-8'), object_pairs_hook=OrderedDict)
|
return json.loads(json_bytes.decode('utf-8'), object_pairs_hook=OrderedDict)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,9 @@
|
||||||
from drf_yasg.inspectors import FieldInspector, SerializerInspector, PaginatorInspector, FilterInspector
|
import json
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
from drf_yasg import openapi
|
||||||
|
from drf_yasg.generators import OpenAPISchemaGenerator
|
||||||
|
from drf_yasg.inspectors import FieldInspector, FilterInspector, PaginatorInspector, SerializerInspector
|
||||||
|
|
||||||
|
|
||||||
def test_reference_schema(swagger_dict, reference_schema, compare_schemas):
|
def test_reference_schema(swagger_dict, reference_schema, compare_schemas):
|
||||||
|
|
@ -21,13 +26,23 @@ class NoOpPaginatorInspector(PaginatorInspector):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def test_noop_inspectors(swagger_settings, swagger_dict, reference_schema, compare_schemas):
|
def test_noop_inspectors(swagger_settings, mock_schema_request, codec_json, reference_schema, compare_schemas):
|
||||||
from drf_yasg import app_settings
|
from drf_yasg import app_settings
|
||||||
|
|
||||||
def set_inspectors(inspectors, setting_name):
|
def set_inspectors(inspectors, setting_name):
|
||||||
|
inspectors = [__name__ + '.' + inspector.__name__ for inspector in inspectors]
|
||||||
swagger_settings[setting_name] = inspectors + app_settings.SWAGGER_DEFAULTS[setting_name]
|
swagger_settings[setting_name] = inspectors + app_settings.SWAGGER_DEFAULTS[setting_name]
|
||||||
|
|
||||||
set_inspectors([NoOpFieldInspector, NoOpSerializerInspector], 'DEFAULT_FIELD_INSPECTORS')
|
set_inspectors([NoOpFieldInspector, NoOpSerializerInspector], 'DEFAULT_FIELD_INSPECTORS')
|
||||||
set_inspectors([NoOpFilterInspector], 'DEFAULT_FILTER_INSPECTORS')
|
set_inspectors([NoOpFilterInspector], 'DEFAULT_FILTER_INSPECTORS')
|
||||||
set_inspectors([NoOpPaginatorInspector], 'DEFAULT_PAGINATOR_INSPECTORS')
|
set_inspectors([NoOpPaginatorInspector], 'DEFAULT_PAGINATOR_INSPECTORS')
|
||||||
|
|
||||||
|
generator = OpenAPISchemaGenerator(
|
||||||
|
info=openapi.Info(title="Test generator", default_version="v1"),
|
||||||
|
version="v2",
|
||||||
|
)
|
||||||
|
swagger = generator.get_schema(mock_schema_request, True)
|
||||||
|
|
||||||
|
json_bytes = codec_json.encode(swagger)
|
||||||
|
swagger_dict = json.loads(json_bytes.decode('utf-8'), object_pairs_hook=OrderedDict)
|
||||||
compare_schemas(swagger_dict, reference_schema)
|
compare_schemas(swagger_dict, reference_schema)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue