mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-23 10:03:57 +03:00
994e1ba927
* Added TEMPLATES setting to tests * Remove deprecated view-string in URL conf * Replace 'urls = ...' in test classes with override_settings('ROOT_URLCONF=...') * Refactor UsingURLPatterns to use override_settings(ROOT_URLCONF=...) style * Get model managers and names in a version-compatible manner. * Apply override_settings to a TestCase, not a mixin class * Use '.callback' property instead of private attributes when inspecting urlpatterns * Pass 'user' to template explicitly * Correct sorting of import statements. * Remove unused TEMPLATE_LOADERS setting, in favor of TEMPLATES. * Remove code style issue * BaseFilter test requires a concrete model * Resolve tox.ini issues * Resolve isort differences between local and tox environments
71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.contrib.auth.models import User
|
|
from django.test import TestCase, override_settings
|
|
|
|
from rest_framework.test import APIClient
|
|
|
|
|
|
@override_settings(ROOT_URLCONF='tests.browsable_api.auth_urls')
|
|
class DropdownWithAuthTests(TestCase):
|
|
"""Tests correct dropdown behaviour with Auth views enabled."""
|
|
def setUp(self):
|
|
self.client = APIClient(enforce_csrf_checks=True)
|
|
self.username = 'john'
|
|
self.email = 'lennon@thebeatles.com'
|
|
self.password = 'password'
|
|
self.user = User.objects.create_user(
|
|
self.username,
|
|
self.email,
|
|
self.password
|
|
)
|
|
|
|
def tearDown(self):
|
|
self.client.logout()
|
|
|
|
def test_name_shown_when_logged_in(self):
|
|
self.client.login(username=self.username, password=self.password)
|
|
response = self.client.get('/')
|
|
self.assertContains(response, 'john')
|
|
|
|
def test_logout_shown_when_logged_in(self):
|
|
self.client.login(username=self.username, password=self.password)
|
|
response = self.client.get('/')
|
|
self.assertContains(response, '>Log out<')
|
|
|
|
def test_login_shown_when_logged_out(self):
|
|
response = self.client.get('/')
|
|
self.assertContains(response, '>Log in<')
|
|
|
|
|
|
@override_settings(ROOT_URLCONF='tests.browsable_api.no_auth_urls')
|
|
class NoDropdownWithoutAuthTests(TestCase):
|
|
"""Tests correct dropdown behaviour with Auth views NOT enabled."""
|
|
def setUp(self):
|
|
self.client = APIClient(enforce_csrf_checks=True)
|
|
self.username = 'john'
|
|
self.email = 'lennon@thebeatles.com'
|
|
self.password = 'password'
|
|
self.user = User.objects.create_user(
|
|
self.username,
|
|
self.email,
|
|
self.password
|
|
)
|
|
|
|
def tearDown(self):
|
|
self.client.logout()
|
|
|
|
def test_name_shown_when_logged_in(self):
|
|
self.client.login(username=self.username, password=self.password)
|
|
response = self.client.get('/')
|
|
self.assertContains(response, 'john')
|
|
|
|
def test_dropdown_not_shown_when_logged_in(self):
|
|
self.client.login(username=self.username, password=self.password)
|
|
response = self.client.get('/')
|
|
self.assertNotContains(response, '<li class="dropdown">')
|
|
|
|
def test_dropdown_not_shown_when_logged_out(self):
|
|
response = self.client.get('/')
|
|
self.assertNotContains(response, '<li class="dropdown">')
|