From 7b0689a67f5c0a73f15e66923787e4da2de6395f Mon Sep 17 00:00:00 2001 From: Emmanuelle Delescolle Date: Fri, 10 Mar 2017 20:04:01 +0100 Subject: [PATCH] add tests for #4965 --- tests/interactive_doc/__init__.py | 0 tests/interactive_doc/data.py | 18 ++++++++++ tests/interactive_doc/test_recursive_url.py | 38 +++++++++++++++++++++ tests/interactive_doc/urls.py | 18 ++++++++++ 4 files changed, 74 insertions(+) create mode 100644 tests/interactive_doc/__init__.py create mode 100644 tests/interactive_doc/data.py create mode 100644 tests/interactive_doc/test_recursive_url.py create mode 100644 tests/interactive_doc/urls.py 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