mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-04-10 09:51:06 +00:00
Merge branch 'floppify-auth-forms' of git://github.com/gregmuellegger/django-admin2 into gregmuellegger-floppify-auth-forms
This commit is contained in:
commit
dca4d849d7
6 changed files with 88 additions and 11 deletions
|
|
@ -109,17 +109,14 @@ _django_to_floppyforms_widget = {
|
|||
django.forms.widgets.DateInput:
|
||||
_create_widget(
|
||||
floppyforms.widgets.DateInput,
|
||||
('input_type',),
|
||||
init_arguments=('format',)),
|
||||
django.forms.widgets.DateTimeInput:
|
||||
_create_widget(
|
||||
floppyforms.widgets.DateTimeInput,
|
||||
('input_type',),
|
||||
init_arguments=('format',)),
|
||||
django.forms.widgets.TimeInput:
|
||||
_create_widget(
|
||||
floppyforms.widgets.TimeInput,
|
||||
('input_type',),
|
||||
init_arguments=('format',)),
|
||||
django.forms.widgets.CheckboxInput:
|
||||
_create_widget(floppyforms.widgets.CheckboxInput, ('check_test',)),
|
||||
|
|
|
|||
|
|
@ -6,10 +6,15 @@ from django.contrib.auth.models import Group, User
|
|||
from rest_framework.relations import PrimaryKeyRelatedField
|
||||
|
||||
import djadmin2
|
||||
from djadmin2.forms import floppify_form
|
||||
from djadmin2.models import ModelAdmin2, Admin2Inline
|
||||
from djadmin2.apiviews import Admin2APISerializer
|
||||
|
||||
|
||||
UserCreationForm = floppify_form(UserCreationForm)
|
||||
UserChangeForm = floppify_form(UserChangeForm)
|
||||
|
||||
|
||||
class GroupSerializer(Admin2APISerializer):
|
||||
permissions = PrimaryKeyRelatedField(many=True)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from test_auth_admin import *
|
||||
from test_apiviews import *
|
||||
from test_builtin_api_resources import *
|
||||
from test_views import *
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ class ViewTest(TestCase):
|
|||
|
||||
|
||||
class IndexAPIViewTest(ViewTest):
|
||||
|
||||
def test_response_ok(self):
|
||||
request = self.factory.get(reverse('admin2:api-index'))
|
||||
view = apiviews.IndexAPIView.as_view(**default.get_api_index_kwargs())
|
||||
|
|
@ -28,7 +27,6 @@ class IndexAPIViewTest(ViewTest):
|
|||
|
||||
|
||||
class ListCreateAPIViewTest(ViewTest):
|
||||
|
||||
def test_response_ok(self):
|
||||
request = self.factory.get(reverse('admin2:blog_post_api-list'))
|
||||
model_admin = self.get_model_admin(Post)
|
||||
|
|
|
|||
59
example/blog/tests/test_auth_admin.py
Normal file
59
example/blog/tests/test_auth_admin.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
import floppyforms
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
import djadmin2
|
||||
from blog.admin2 import UserAdmin2
|
||||
|
||||
|
||||
class UserAdminTest(TestCase):
|
||||
def setUp(self):
|
||||
self.factory = RequestFactory()
|
||||
self.user = User(
|
||||
username='admin',
|
||||
is_staff=True,
|
||||
is_superuser=True)
|
||||
self.user.set_password('admin')
|
||||
self.user.save()
|
||||
|
||||
def test_create_form_uses_floppyform_widgets(self):
|
||||
form = UserAdmin2.create_form_class()
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['username'].widget,
|
||||
floppyforms.TextInput))
|
||||
|
||||
request = self.factory.get(reverse('admin2:auth_user_create'))
|
||||
request.user = self.user
|
||||
model_admin = UserAdmin2(User, djadmin2.default)
|
||||
view = model_admin.create_view.as_view(
|
||||
**model_admin.get_create_kwargs())
|
||||
response = view(request)
|
||||
form = response.context_data['form']
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['username'].widget,
|
||||
floppyforms.TextInput))
|
||||
|
||||
def test_update_form_uses_floppyform_widgets(self):
|
||||
form = UserAdmin2.update_form_class()
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['username'].widget,
|
||||
floppyforms.TextInput))
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['date_joined'].widget,
|
||||
floppyforms.DateTimeInput))
|
||||
|
||||
request = self.factory.get(
|
||||
reverse('admin2:auth_user_update', args=(self.user.pk,)))
|
||||
request.user = self.user
|
||||
model_admin = UserAdmin2(User, djadmin2.default)
|
||||
view = model_admin.update_view.as_view(
|
||||
**model_admin.get_update_kwargs())
|
||||
response = view(request, pk=self.user.pk)
|
||||
form = response.context_data['form']
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['username'].widget,
|
||||
floppyforms.TextInput))
|
||||
self.assertTrue(
|
||||
isinstance(form.fields['date_joined'].widget,
|
||||
floppyforms.DateTimeInput))
|
||||
|
|
@ -15,7 +15,7 @@ class ModelFormFactoryTest(TestCase):
|
|||
|
||||
class GetFloppyformWidgetTest(TestCase):
|
||||
def assertExpectWidget(self, instance, new_class_,
|
||||
equal_attributes=None):
|
||||
equal_attributes=None, new_attributes=None):
|
||||
new_instance = floppify_widget(instance)
|
||||
self.assertEqual(new_instance.__class__, new_class_)
|
||||
if equal_attributes:
|
||||
|
|
@ -33,6 +33,16 @@ class GetFloppyformWidgetTest(TestCase):
|
|||
self.assertEqual(old_attr, new_attr,
|
||||
'Original widget\'s attribute was not copied: %r != %r' %
|
||||
(old_attr, new_attr))
|
||||
if new_attributes:
|
||||
for attribute, value in new_attributes.items():
|
||||
self.assertTrue(
|
||||
hasattr(new_instance, attribute),
|
||||
'Cannot check new attribute %r, not available on '
|
||||
'generated widget %r' % (attribute, new_instance))
|
||||
new_attr = getattr(new_instance, attribute)
|
||||
self.assertEqual(new_attr, value,
|
||||
'Generated widget\'s attribute is not as expected: '
|
||||
'%r != %r' % (new_attr, value))
|
||||
|
||||
def test_created_widget_doesnt_leak_attributes_into_original_widget(self):
|
||||
widget = forms.TextInput()
|
||||
|
|
@ -70,12 +80,16 @@ class GetFloppyformWidgetTest(TestCase):
|
|||
def test_textinput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
forms.widgets.TextInput(),
|
||||
floppyforms.widgets.TextInput)
|
||||
floppyforms.widgets.TextInput,
|
||||
['input_type'],
|
||||
{'input_type': 'text'})
|
||||
|
||||
def test_passwordinput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
forms.widgets.PasswordInput(),
|
||||
floppyforms.widgets.PasswordInput)
|
||||
floppyforms.widgets.PasswordInput,
|
||||
['input_type'],
|
||||
{'input_type': 'password'})
|
||||
|
||||
def test_hiddeninput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
|
|
@ -146,7 +160,8 @@ class GetFloppyformWidgetTest(TestCase):
|
|||
self.assertExpectWidget(
|
||||
widget,
|
||||
floppyforms.widgets.DateInput,
|
||||
['format'])
|
||||
['format'],
|
||||
{'input_type': 'date'})
|
||||
|
||||
def test_datetimeinput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
|
|
@ -157,7 +172,8 @@ class GetFloppyformWidgetTest(TestCase):
|
|||
self.assertExpectWidget(
|
||||
widget,
|
||||
floppyforms.widgets.DateTimeInput,
|
||||
['format'])
|
||||
['format'],
|
||||
{'input_type': 'datetime'})
|
||||
|
||||
def test_timeinput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
|
|
@ -168,7 +184,8 @@ class GetFloppyformWidgetTest(TestCase):
|
|||
self.assertExpectWidget(
|
||||
widget,
|
||||
floppyforms.widgets.TimeInput,
|
||||
['format'])
|
||||
['format'],
|
||||
{'input_type': 'time'})
|
||||
|
||||
def test_checkboxinput_widget(self):
|
||||
self.assertExpectWidget(
|
||||
|
|
|
|||
Loading…
Reference in a new issue