47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
from collections import OrderedDict
|
|
|
|
from datadiff.tools import assert_equal
|
|
|
|
from drf_yasg.codecs import yaml_sane_dump
|
|
from drf_yasg.inspectors import FieldInspector, SerializerInspector, PaginatorInspector, FilterInspector
|
|
|
|
|
|
def test_reference_schema(swagger_dict, reference_schema):
|
|
swagger_dict = OrderedDict(swagger_dict)
|
|
reference_schema = OrderedDict(reference_schema)
|
|
ignore = ['info', 'host', 'schemes', 'basePath', 'securityDefinitions']
|
|
for attr in ignore:
|
|
swagger_dict.pop(attr, None)
|
|
reference_schema.pop(attr, None)
|
|
|
|
# print diff between YAML strings because it's prettier
|
|
assert_equal(yaml_sane_dump(swagger_dict, binary=False), yaml_sane_dump(reference_schema, binary=False))
|
|
|
|
|
|
class NoOpFieldInspector(FieldInspector):
|
|
pass
|
|
|
|
|
|
class NoOpSerializerInspector(SerializerInspector):
|
|
pass
|
|
|
|
|
|
class NoOpFilterInspector(FilterInspector):
|
|
pass
|
|
|
|
|
|
class NoOpPaginatorInspector(PaginatorInspector):
|
|
pass
|
|
|
|
|
|
def test_noop_inspectors(swagger_settings, swagger_dict, reference_schema):
|
|
from drf_yasg import app_settings
|
|
|
|
def set_inspectors(inspectors, setting_name):
|
|
swagger_settings[setting_name] = inspectors + app_settings.SWAGGER_DEFAULTS[setting_name]
|
|
|
|
set_inspectors([NoOpFieldInspector, NoOpSerializerInspector], 'DEFAULT_FIELD_INSPECTORS')
|
|
set_inspectors([NoOpFilterInspector], 'DEFAULT_FILTER_INSPECTORS')
|
|
set_inspectors([NoOpPaginatorInspector], 'DEFAULT_PAGINATOR_INSPECTORS')
|
|
test_reference_schema(swagger_dict, reference_schema)
|