From 63082ef55eca8d9739c9592253623c88f2bd81ea Mon Sep 17 00:00:00 2001 From: "T. Franzel" <13507857+tfranzel@users.noreply.github.com> Date: Fri, 25 Sep 2020 23:49:34 +0200 Subject: [PATCH] bugfix module string includes with urlpatterns #157 --- drf_spectacular/plumbing.py | 2 +- tests/test_plumbing.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drf_spectacular/plumbing.py b/drf_spectacular/plumbing.py index 3a782c92..c650f0c1 100644 --- a/drf_spectacular/plumbing.py +++ b/drf_spectacular/plumbing.py @@ -675,7 +675,7 @@ def detype_pattern(pattern): if isinstance(pattern, URLResolver): return URLResolver( pattern=detype_pattern(pattern.pattern), - urlconf_name=[detype_pattern(p) for p in pattern.urlconf_name], + urlconf_name=[detype_pattern(p) for p in pattern.url_patterns], default_kwargs=pattern.default_kwargs, app_name=pattern.app_name, namespace=pattern.namespace, diff --git a/tests/test_plumbing.py b/tests/test_plumbing.py index 9ad3b378..043ad338 100644 --- a/tests/test_plumbing.py +++ b/tests/test_plumbing.py @@ -1,8 +1,11 @@ +from django.conf.urls import include, url from django.db import models from rest_framework import serializers from drf_spectacular.openapi import AutoSchema -from drf_spectacular.plumbing import follow_field_source, force_instance, is_field, is_serializer +from drf_spectacular.plumbing import ( + detype_pattern, follow_field_source, force_instance, is_field, is_serializer, +) def test_is_serializer(): @@ -59,3 +62,9 @@ class FFS3(models.Model): assert auto_schema._map_model_field(reverse_field, None)['type'] == 'number' assert auto_schema._map_model_field(forward_model, None)['type'] == 'integer' assert auto_schema._map_model_field(reverse_model, None)['type'] == 'integer' + + +def test_detype_patterns_with_module_includes(no_warnings): + detype_pattern( + pattern=url(r'^', include('tests.test_fields')) + )