diff --git a/tests/interactive_doc/__init__.py b/tests/interactive_doc/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/interactive_doc/data.py b/tests/interactive_doc/data.py new file mode 100644 index 000000000..e8b26a672 --- /dev/null +++ b/tests/interactive_doc/data.py @@ -0,0 +1,18 @@ +from django.db import models +from rest_framework import serializers, viewsets + + +class DummyModel(models.Model): + pass + + +class DummySerializer(serializers.ModelSerializer): + + class Meta: + model = DummyModel + fields = ('id', ) + + +class DummyViewSet(viewsets.ModelViewSet): + serializer_class = DummySerializer + queryset = DummyModel.objects.all() diff --git a/tests/interactive_doc/test_recursive_url.py b/tests/interactive_doc/test_recursive_url.py new file mode 100644 index 000000000..67055c78a --- /dev/null +++ b/tests/interactive_doc/test_recursive_url.py @@ -0,0 +1,38 @@ +from __future__ import unicode_literals + +import re + +from django.test import TestCase, override_settings + +from rest_framework.test import APIClient + + +@override_settings(ROOT_URLCONF='tests.interactive_doc.urls') +class TestRecursiveUrlViewSets(TestCase): + + def setUp(self): + client = APIClient() + response = client.get('/docs/') + self.content = response.content.decode('utf-8') + + def test_menu(self): + self.assertTrue( + re.search('a href="#.*not_dummies\-list">', self.content), + 'unable to find menu item for not_dummies' + ) + for model_type in ['aaaa', 'bbbb']: + self.assertTrue( + re.search('a href="#.*{}s\-list">'.format(model_type), self.content), + 'unable to find menu item for dummy/{}'.format(model_type) + ) + + def test_documentation(self): + self.assertTrue( + re.search('h2.*>not_dummies {}s