|
2 | 2 | from django.conf.urls import url |
3 | 3 | from django.test import RequestFactory, TestCase, override_settings |
4 | 4 |
|
5 | | -from rest_framework import filters, generics, pagination, serializers |
| 5 | +from rest_framework import filters, generics, pagination, routers, serializers |
6 | 6 | from rest_framework.compat import uritemplate |
7 | 7 | from rest_framework.request import Request |
8 | 8 | from rest_framework.schemas.openapi import AutoSchema, SchemaGenerator |
@@ -160,6 +160,21 @@ class View(generics.GenericAPIView): |
160 | 160 | assert list(schema['properties']['nested']['properties'].keys()) == ['number'] |
161 | 161 | assert schema['properties']['nested']['required'] == ['number'] |
162 | 162 |
|
| 163 | + def test_repeat_operation_ids(self): |
| 164 | + router = routers.SimpleRouter() |
| 165 | + router.register('account', views.ExampleGenericViewSet, basename="account") |
| 166 | + urlpatterns = router.urls |
| 167 | + |
| 168 | + generator = SchemaGenerator(patterns=urlpatterns) |
| 169 | + |
| 170 | + request = create_request('/') |
| 171 | + schema = generator.get_schema(request=request) |
| 172 | + schema_str = str(schema) |
| 173 | + print(schema_str) |
| 174 | + assert schema_str.count("operationId") == 2 |
| 175 | + assert schema_str.count("newExample") == 1 |
| 176 | + assert schema_str.count("oldExample") == 1 |
| 177 | + |
163 | 178 |
|
164 | 179 | @pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.') |
165 | 180 | @override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.openapi.AutoSchema'}) |
|
0 commit comments