summaryrefslogtreecommitdiff
path: root/tests/admin_widgets/tests.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-12-08 11:00:14 -0500
committerTim Graham <timograham@gmail.com>2016-12-08 11:14:15 -0500
commite744c7e459bae0fbb656c70f368c7183fd7a6013 (patch)
tree813e82cf4f455b411dc5049fb31b805962d93b5b /tests/admin_widgets/tests.py
parent9b79281e315268bdbba2704b253eef23b46da023 (diff)
downloaddjango-e744c7e459bae0fbb656c70f368c7183fd7a6013.tar.gz
Imported specific models in a few tests that didn't.
Diffstat (limited to 'tests/admin_widgets/tests.py')
-rw-r--r--tests/admin_widgets/tests.py155
1 files changed, 79 insertions, 76 deletions
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py
index 78b68e7768..2d8b88f2cf 100644
--- a/tests/admin_widgets/tests.py
+++ b/tests/admin_widgets/tests.py
@@ -21,7 +21,10 @@ from django.test import SimpleTestCase, TestCase, override_settings
from django.urls import reverse
from django.utils import six, translation
-from . import models
+from .models import (
+ Advisor, Album, Band, Bee, Car, Company, Event, Honeycomb, Individual,
+ Inventory, Member, MyFileField, Profile, School, Student,
+)
from .widgetadmin import site as widget_admin_site
@@ -31,8 +34,8 @@ class TestDataMixin(object):
def setUpTestData(cls):
cls.superuser = User.objects.create_superuser(username='super', password='secret', email=None)
cls.u2 = User.objects.create_user(username='testser', password='secret')
- models.Car.objects.create(owner=cls.superuser, make='Volkswagen', model='Passat')
- models.Car.objects.create(owner=cls.u2, make='BMW', model='M3')
+ Car.objects.create(owner=cls.superuser, make='Volkswagen', model='Passat')
+ Car.objects.create(owner=cls.u2, make='BMW', model='M3')
class AdminFormfieldForDBFieldTests(SimpleTestCase):
@@ -67,57 +70,57 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
return ff
def test_DateField(self):
- self.assertFormfield(models.Event, 'start_date', widgets.AdminDateWidget)
+ self.assertFormfield(Event, 'start_date', widgets.AdminDateWidget)
def test_DateTimeField(self):
- self.assertFormfield(models.Member, 'birthdate', widgets.AdminSplitDateTime)
+ self.assertFormfield(Member, 'birthdate', widgets.AdminSplitDateTime)
def test_TimeField(self):
- self.assertFormfield(models.Event, 'start_time', widgets.AdminTimeWidget)
+ self.assertFormfield(Event, 'start_time', widgets.AdminTimeWidget)
def test_TextField(self):
- self.assertFormfield(models.Event, 'description', widgets.AdminTextareaWidget)
+ self.assertFormfield(Event, 'description', widgets.AdminTextareaWidget)
def test_URLField(self):
- self.assertFormfield(models.Event, 'link', widgets.AdminURLFieldWidget)
+ self.assertFormfield(Event, 'link', widgets.AdminURLFieldWidget)
def test_IntegerField(self):
- self.assertFormfield(models.Event, 'min_age', widgets.AdminIntegerFieldWidget)
+ self.assertFormfield(Event, 'min_age', widgets.AdminIntegerFieldWidget)
def test_CharField(self):
- self.assertFormfield(models.Member, 'name', widgets.AdminTextInputWidget)
+ self.assertFormfield(Member, 'name', widgets.AdminTextInputWidget)
def test_EmailField(self):
- self.assertFormfield(models.Member, 'email', widgets.AdminEmailInputWidget)
+ self.assertFormfield(Member, 'email', widgets.AdminEmailInputWidget)
def test_FileField(self):
- self.assertFormfield(models.Album, 'cover_art', widgets.AdminFileWidget)
+ self.assertFormfield(Album, 'cover_art', widgets.AdminFileWidget)
def test_ForeignKey(self):
- self.assertFormfield(models.Event, 'main_band', forms.Select)
+ self.assertFormfield(Event, 'main_band', forms.Select)
def test_raw_id_ForeignKey(self):
- self.assertFormfield(models.Event, 'main_band', widgets.ForeignKeyRawIdWidget,
+ self.assertFormfield(Event, 'main_band', widgets.ForeignKeyRawIdWidget,
raw_id_fields=['main_band'])
def test_radio_fields_ForeignKey(self):
- ff = self.assertFormfield(models.Event, 'main_band', widgets.AdminRadioSelect,
+ ff = self.assertFormfield(Event, 'main_band', widgets.AdminRadioSelect,
radio_fields={'main_band': admin.VERTICAL})
self.assertIsNone(ff.empty_label)
def test_many_to_many(self):
- self.assertFormfield(models.Band, 'members', forms.SelectMultiple)
+ self.assertFormfield(Band, 'members', forms.SelectMultiple)
def test_raw_id_many_to_many(self):
- self.assertFormfield(models.Band, 'members', widgets.ManyToManyRawIdWidget,
+ self.assertFormfield(Band, 'members', widgets.ManyToManyRawIdWidget,
raw_id_fields=['members'])
def test_filtered_many_to_many(self):
- self.assertFormfield(models.Band, 'members', widgets.FilteredSelectMultiple,
+ self.assertFormfield(Band, 'members', widgets.FilteredSelectMultiple,
filter_vertical=['members'])
def test_formfield_overrides(self):
- self.assertFormfield(models.Event, 'start_date', forms.TextInput,
+ self.assertFormfield(Event, 'start_date', forms.TextInput,
formfield_overrides={DateField: {'widget': forms.TextInput}})
def test_formfield_overrides_widget_instances(self):
@@ -129,9 +132,9 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
formfield_overrides = {
CharField: {'widget': forms.TextInput(attrs={'size': '10'})}
}
- ma = BandAdmin(models.Band, admin.site)
- f1 = ma.formfield_for_dbfield(models.Band._meta.get_field('name'), request=None)
- f2 = ma.formfield_for_dbfield(models.Band._meta.get_field('style'), request=None)
+ ma = BandAdmin(Band, admin.site)
+ f1 = ma.formfield_for_dbfield(Band._meta.get_field('name'), request=None)
+ f2 = ma.formfield_for_dbfield(Band._meta.get_field('style'), request=None)
self.assertNotEqual(f1.widget, f2.widget)
self.assertEqual(f1.widget.attrs['maxlength'], '100')
self.assertEqual(f2.widget.attrs['maxlength'], '20')
@@ -144,8 +147,8 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
"""
class MemberAdmin(admin.ModelAdmin):
formfield_overrides = {DateTimeField: {'widget': widgets.AdminSplitDateTime}}
- ma = MemberAdmin(models.Member, admin.site)
- f1 = ma.formfield_for_dbfield(models.Member._meta.get_field('birthdate'), request=None)
+ ma = MemberAdmin(Member, admin.site)
+ f1 = ma.formfield_for_dbfield(Member._meta.get_field('birthdate'), request=None)
self.assertIsInstance(f1.widget, widgets.AdminSplitDateTime)
self.assertIsInstance(f1, forms.SplitDateTimeField)
@@ -154,30 +157,30 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
formfield_overrides works for a custom field class.
"""
class AlbumAdmin(admin.ModelAdmin):
- formfield_overrides = {models.MyFileField: {'widget': forms.TextInput()}}
- ma = AlbumAdmin(models.Member, admin.site)
- f1 = ma.formfield_for_dbfield(models.Album._meta.get_field('backside_art'), request=None)
+ formfield_overrides = {MyFileField: {'widget': forms.TextInput()}}
+ ma = AlbumAdmin(Member, admin.site)
+ f1 = ma.formfield_for_dbfield(Album._meta.get_field('backside_art'), request=None)
self.assertIsInstance(f1.widget, forms.TextInput)
def test_field_with_choices(self):
- self.assertFormfield(models.Member, 'gender', forms.Select)
+ self.assertFormfield(Member, 'gender', forms.Select)
def test_choices_with_radio_fields(self):
- self.assertFormfield(models.Member, 'gender', widgets.AdminRadioSelect,
+ self.assertFormfield(Member, 'gender', widgets.AdminRadioSelect,
radio_fields={'gender': admin.VERTICAL})
def test_inheritance(self):
- self.assertFormfield(models.Album, 'backside_art', widgets.AdminFileWidget)
+ self.assertFormfield(Album, 'backside_art', widgets.AdminFileWidget)
def test_m2m_widgets(self):
"""m2m fields help text as it applies to admin app (#9321)."""
class AdvisorAdmin(admin.ModelAdmin):
filter_vertical = ['companies']
- self.assertFormfield(models.Advisor, 'companies', widgets.FilteredSelectMultiple,
+ self.assertFormfield(Advisor, 'companies', widgets.FilteredSelectMultiple,
filter_vertical=['companies'])
- ma = AdvisorAdmin(models.Advisor, admin.site)
- f = ma.formfield_for_dbfield(models.Advisor._meta.get_field('companies'), request=None)
+ ma = AdvisorAdmin(Advisor, admin.site)
+ f = ma.formfield_for_dbfield(Advisor._meta.get_field('companies'), request=None)
self.assertEqual(
six.text_type(f.help_text),
'Hold down "Control", or "Command" on a Mac, to select more than one.'
@@ -215,7 +218,7 @@ class AdminForeignKeyRawIdWidget(TestDataMixin, TestCase):
self.client.force_login(self.superuser)
def test_nonexistent_target_id(self):
- band = models.Band.objects.create(name='Bogey Blues')
+ band = Band.objects.create(name='Bogey Blues')
pk = band.pk
band.delete()
post_data = {
@@ -388,7 +391,7 @@ class AdminFileWidgetTests(TestDataMixin, TestCase):
@classmethod
def setUpTestData(cls):
super(AdminFileWidgetTests, cls).setUpTestData()
- band = models.Band.objects.create(name='Linkin Park')
+ band = Band.objects.create(name='Linkin Park')
cls.album = band.album_set.create(
name='Hybrid Theory', cover_art=r'albums\hybrid_theory.jpg'
)
@@ -440,11 +443,11 @@ class AdminFileWidgetTests(TestDataMixin, TestCase):
class ForeignKeyRawIdWidgetTest(TestCase):
def test_render(self):
- band = models.Band.objects.create(name='Linkin Park')
+ band = Band.objects.create(name='Linkin Park')
band.album_set.create(
name='Hybrid Theory', cover_art=r'albums\hybrid_theory.jpg'
)
- rel = models.Album._meta.get_field('band').remote_field
+ rel = Album._meta.get_field('band').remote_field
w = widgets.ForeignKeyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
@@ -460,12 +463,12 @@ class ForeignKeyRawIdWidgetTest(TestCase):
def test_relations_to_non_primary_key(self):
# ForeignKeyRawIdWidget works with fields which aren't related to
# the model's primary key.
- apple = models.Inventory.objects.create(barcode=86, name='Apple')
- models.Inventory.objects.create(barcode=22, name='Pear')
- core = models.Inventory.objects.create(
+ apple = Inventory.objects.create(barcode=86, name='Apple')
+ Inventory.objects.create(barcode=22, name='Pear')
+ core = Inventory.objects.create(
barcode=87, name='Core', parent=apple
)
- rel = models.Inventory._meta.get_field('parent').remote_field
+ rel = Inventory._meta.get_field('parent').remote_field
w = widgets.ForeignKeyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
w.render('test', core.parent_id, attrs={}),
@@ -480,9 +483,9 @@ class ForeignKeyRawIdWidgetTest(TestCase):
def test_fk_related_model_not_in_admin(self):
# FK to a model not registered with admin site. Raw ID widget should
# have no magnifying glass link. See #16542
- big_honeycomb = models.Honeycomb.objects.create(location='Old tree')
+ big_honeycomb = Honeycomb.objects.create(location='Old tree')
big_honeycomb.bee_set.create()
- rel = models.Bee._meta.get_field('honeycomb').remote_field
+ rel = Bee._meta.get_field('honeycomb').remote_field
w = widgets.ForeignKeyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
@@ -495,9 +498,9 @@ class ForeignKeyRawIdWidgetTest(TestCase):
def test_fk_to_self_model_not_in_admin(self):
# FK to self, not registered with admin site. Raw ID widget should have
# no magnifying glass link. See #16542
- subject1 = models.Individual.objects.create(name='Subject #1')
- models.Individual.objects.create(name='Child', parent=subject1)
- rel = models.Individual._meta.get_field('parent').remote_field
+ subject1 = Individual.objects.create(name='Subject #1')
+ Individual.objects.create(name='Child', parent=subject1)
+ rel = Individual._meta.get_field('parent').remote_field
w = widgets.ForeignKeyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
@@ -509,13 +512,13 @@ class ForeignKeyRawIdWidgetTest(TestCase):
def test_proper_manager_for_label_lookup(self):
# see #9258
- rel = models.Inventory._meta.get_field('parent').remote_field
+ rel = Inventory._meta.get_field('parent').remote_field
w = widgets.ForeignKeyRawIdWidget(rel, widget_admin_site)
- hidden = models.Inventory.objects.create(
+ hidden = Inventory.objects.create(
barcode=93, name='Hidden', hidden=True
)
- child_of_hidden = models.Inventory.objects.create(
+ child_of_hidden = Inventory.objects.create(
barcode=94, name='Child of hidden', parent=hidden
)
self.assertHTMLEqual(
@@ -532,12 +535,12 @@ class ForeignKeyRawIdWidgetTest(TestCase):
class ManyToManyRawIdWidgetTest(TestCase):
def test_render(self):
- band = models.Band.objects.create(name='Linkin Park')
+ band = Band.objects.create(name='Linkin Park')
- m1 = models.Member.objects.create(name='Chester')
- m2 = models.Member.objects.create(name='Mike')
+ m1 = Member.objects.create(name='Chester')
+ m2 = Member.objects.create(name='Mike')
band.members.add(m1, m2)
- rel = models.Band._meta.get_field('members').remote_field
+ rel = Band._meta.get_field('members').remote_field
w = widgets.ManyToManyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
@@ -557,12 +560,12 @@ class ManyToManyRawIdWidgetTest(TestCase):
def test_m2m_related_model_not_in_admin(self):
# M2M relationship with model not registered with admin site. Raw ID
# widget should have no magnifying glass link. See #16542
- consultor1 = models.Advisor.objects.create(name='Rockstar Techie')
+ consultor1 = Advisor.objects.create(name='Rockstar Techie')
- c1 = models.Company.objects.create(name='Doodle')
- c2 = models.Company.objects.create(name='Pear')
+ c1 = Company.objects.create(name='Doodle')
+ c2 = Company.objects.create(name='Pear')
consultor1.companies.add(c1, c2)
- rel = models.Advisor._meta.get_field('companies').remote_field
+ rel = Advisor._meta.get_field('companies').remote_field
w = widgets.ManyToManyRawIdWidget(rel, widget_admin_site)
self.assertHTMLEqual(
@@ -578,14 +581,14 @@ class ManyToManyRawIdWidgetTest(TestCase):
class RelatedFieldWidgetWrapperTests(SimpleTestCase):
def test_no_can_add_related(self):
- rel = models.Individual._meta.get_field('parent').remote_field
+ rel = Individual._meta.get_field('parent').remote_field
w = widgets.AdminRadioSelect()
# Used to fail with a name error.
w = widgets.RelatedFieldWidgetWrapper(w, rel, widget_admin_site)
self.assertFalse(w.can_add_related)
def test_select_multiple_widget_cant_change_delete_related(self):
- rel = models.Individual._meta.get_field('parent').remote_field
+ rel = Individual._meta.get_field('parent').remote_field
widget = forms.SelectMultiple()
wrapper = widgets.RelatedFieldWidgetWrapper(
widget, rel, widget_admin_site,
@@ -598,7 +601,7 @@ class RelatedFieldWidgetWrapperTests(SimpleTestCase):
self.assertFalse(wrapper.can_delete_related)
def test_on_delete_cascade_rel_cant_delete_related(self):
- rel = models.Individual._meta.get_field('soulmate').remote_field
+ rel = Individual._meta.get_field('soulmate').remote_field
widget = forms.Select()
wrapper = widgets.RelatedFieldWidgetWrapper(
widget, rel, widget_admin_site,
@@ -740,7 +743,7 @@ class DateTimePickerSeleniumTests(AdminWidgetSeleniumTestCase):
self.admin_login(username='super', password='secret', login_url='/')
# Enter test data
- member = models.Member.objects.create(name='Bob', birthdate=datetime(1984, 5, 15), gender='M')
+ member = Member.objects.create(name='Bob', birthdate=datetime(1984, 5, 15), gender='M')
# Get month name translations for every locale
month_string = 'May'
@@ -819,7 +822,7 @@ class DateTimePickerShortcutsSeleniumTests(AdminWidgetSeleniumTestCase):
# Make sure that "now" in javascript is within 10 seconds
# from "now" on the server side.
- member = models.Member.objects.get(name='test')
+ member = Member.objects.get(name='test')
self.assertGreater(member.birthdate, now - error_margin)
self.assertLess(member.birthdate, now + error_margin)
@@ -835,15 +838,15 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase):
def setUp(self):
super(HorizontalVerticalFilterSeleniumTests, self).setUp()
- self.lisa = models.Student.objects.create(name='Lisa')
- self.john = models.Student.objects.create(name='John')
- self.bob = models.Student.objects.create(name='Bob')
- self.peter = models.Student.objects.create(name='Peter')
- self.jenny = models.Student.objects.create(name='Jenny')
- self.jason = models.Student.objects.create(name='Jason')
- self.cliff = models.Student.objects.create(name='Cliff')
- self.arthur = models.Student.objects.create(name='Arthur')
- self.school = models.School.objects.create(name='School of Awesome')
+ self.lisa = Student.objects.create(name='Lisa')
+ self.john = Student.objects.create(name='John')
+ self.bob = Student.objects.create(name='Bob')
+ self.peter = Student.objects.create(name='Peter')
+ self.jenny = Student.objects.create(name='Jenny')
+ self.jason = Student.objects.create(name='Jason')
+ self.cliff = Student.objects.create(name='Cliff')
+ self.arthur = Student.objects.create(name='Arthur')
+ self.school = School.objects.create(name='School of Awesome')
def assertActiveButtons(self, mode, field_name, choose, remove, choose_all=None, remove_all=None):
choose_link = '#id_%s_add_link' % field_name
@@ -1009,7 +1012,7 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase):
# Save and check that everything is properly stored in the database ---
self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
self.wait_page_loaded()
- self.school = models.School.objects.get(id=self.school.id) # Reload from database
+ self.school = School.objects.get(id=self.school.id) # Reload from database
self.assertEqual(list(self.school.students.all()), [self.arthur, self.cliff, self.jason, self.john])
self.assertEqual(list(self.school.alumni.all()), [self.arthur, self.cliff, self.jason, self.john])
@@ -1094,7 +1097,7 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase):
# Save and check that everything is properly stored in the database ---
self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
self.wait_page_loaded()
- self.school = models.School.objects.get(id=self.school.id) # Reload from database
+ self.school = School.objects.get(id=self.school.id) # Reload from database
self.assertEqual(list(self.school.students.all()), [self.jason, self.peter])
self.assertEqual(list(self.school.alumni.all()), [self.jason, self.peter])
@@ -1152,8 +1155,8 @@ class AdminRawIdWidgetSeleniumTests(AdminWidgetSeleniumTestCase):
def setUp(self):
super(AdminRawIdWidgetSeleniumTests, self).setUp()
- models.Band.objects.create(id=42, name='Bogey Blues')
- models.Band.objects.create(id=98, name='Green Potatoes')
+ Band.objects.create(id=42, name='Bogey Blues')
+ Band.objects.create(id=98, name='Green Potatoes')
def test_ForeignKey(self):
self.admin_login(username='super', password='secret', login_url='/')
@@ -1268,6 +1271,6 @@ class RelatedFieldWidgetSeleniumTests(AdminWidgetSeleniumTestCase):
# Go ahead and submit the form to make sure it works
self.selenium.find_element_by_css_selector(save_button_css_selector).click()
self.wait_for_text('li.success', 'The profile "changednewuser" was added successfully.')
- profiles = models.Profile.objects.all()
+ profiles = Profile.objects.all()
self.assertEqual(len(profiles), 1)
self.assertEqual(profiles[0].user.username, username_value)