Convert regex '\Z' to '$'

See https://github.com/swagger-api/swagger-editor/issues/1601.
This commit is contained in:
Cristi Vîjdea
2017-12-27 03:00:47 +01:00
parent 1aaec6b3e5
commit c85acee405
3 changed files with 10 additions and 5 deletions
+8 -1
View File
@@ -211,7 +211,14 @@ def find_regex(regex_field):
regex_validator = validator
# regex_validator.regex should be a compiled re object...
return getattr(getattr(regex_validator, 'regex', None), 'pattern', None)
pattern = getattr(getattr(regex_validator, 'regex', None), 'pattern', None)
if pattern:
# attempt some basic cleanup to remove regex constructs not supported by JavaScript
# -- swagger uses javascript-style regexes - see https://github.com/swagger-api/swagger-editor/issues/1601
if pattern.endswith('\\Z') or pattern.endswith('\\z'):
pattern = pattern[:-2] + '$'
return pattern
numeric_fields = (serializers.IntegerField, serializers.FloatField, serializers.DecimalField)
+1 -3
View File
@@ -162,9 +162,7 @@ class SwaggerAutoSchema(ViewInspector):
default_status = guess_response_status(method)
default_schema = ''
if method == 'post':
default_schema = self.get_request_serializer() or self.get_view_serializer()
elif method in ('get', 'put', 'patch'):
if method in ('get', 'post', 'put', 'patch'):
default_schema = self.get_request_serializer() or self.get_view_serializer()
default_schema = default_schema or ''