import pytest
from django.test import TestCase, override_settings

from rest_framework import renderers
from rest_framework.schemas import coreapi, get_schema_view, openapi


class GetSchemaViewTests(TestCase):
    """For the get_schema_view() helper."""
    def test_openapi(self):
        schema_view = get_schema_view(title="With OpenAPI")
        assert isinstance(schema_view.initkwargs['schema_generator'], openapi.SchemaGenerator)
        assert renderers.OpenAPIRenderer in schema_view.cls().renderer_classes

    @pytest.mark.skipif(not coreapi.coreapi, reason='coreapi is not installed')
    def test_coreapi(self):
        with override_settings(REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'}):
            schema_view = get_schema_view(title="With CoreAPI")
            assert isinstance(schema_view.initkwargs['schema_generator'], coreapi.SchemaGenerator)
            assert renderers.CoreAPIOpenAPIRenderer in schema_view.cls().renderer_classes