diff options
| author | Julien Phalip <jphalip@gmail.com> | 2013-07-30 00:21:08 -0700 |
|---|---|---|
| committer | Julien Phalip <jphalip@gmail.com> | 2013-07-30 00:21:08 -0700 |
| commit | e351dbf6ee5d344a0fe73a6d05c7dcad7b1d2e9c (patch) | |
| tree | 39e2756c9aa060f8d52f6a2601b00c18f98654da /tests | |
| parent | 6ed579e7eb6e1eda3dd1b0afb306d58b9498bfa0 (diff) | |
Fixed #19082 -- Enabled admin field pre-population for existing objects.
Thanks to msaelices and d1ffuz0r for the initial patch and tests.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_views/models.py | 4 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 44 |
2 files changed, 46 insertions, 2 deletions
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index 5ec4fbb544..a1131210d7 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -644,8 +644,8 @@ class MainPrepopulated(models.Model): max_length=20, choices=(('option one', 'Option One'), ('option two', 'Option Two'))) - slug1 = models.SlugField() - slug2 = models.SlugField() + slug1 = models.SlugField(blank=True) + slug2 = models.SlugField(blank=True) class RelatedPrepopulated(models.Model): parent = models.ForeignKey(MainPrepopulated) diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 19c5207cf9..fdb5d7d436 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -3438,6 +3438,50 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase): slug2='option-one-tabular-inline-ignored-characters', ) + def test_populate_existing_object(self): + """ + Ensure that the prepopulation works for existing objects too, as long + as the original field is empty. + Refs #19082. + """ + # Slugs are empty to start with. + item = MainPrepopulated.objects.create( + name=' this is the mAin nÀMë', + pubdate='2012-02-18', + status='option two', + slug1='', + slug2='', + ) + self.admin_login(username='super', + password='secret', + login_url='/test_admin/admin/') + + object_url = '%s%s' % ( + self.live_server_url, + '/test_admin/admin/admin_views/mainprepopulated/{}/'.format(item.id)) + + self.selenium.get(object_url) + self.selenium.find_element_by_css_selector('#id_name').send_keys(' the best') + + # The slugs got prepopulated since they were originally empty + slug1 = self.selenium.find_element_by_css_selector('#id_slug1').get_attribute('value') + slug2 = self.selenium.find_element_by_css_selector('#id_slug2').get_attribute('value') + self.assertEqual(slug1, 'main-name-best-2012-02-18') + self.assertEqual(slug2, 'option-two-main-name-best') + + # Save the object + self.selenium.find_element_by_xpath('//input[@value="Save"]').click() + self.wait_page_loaded() + + self.selenium.get(object_url) + self.selenium.find_element_by_css_selector('#id_name').send_keys(' hello') + + # The slugs got prepopulated didn't change since they were originally not empty + slug1 = self.selenium.find_element_by_css_selector('#id_slug1').get_attribute('value') + slug2 = self.selenium.find_element_by_css_selector('#id_slug2').get_attribute('value') + self.assertEqual(slug1, 'main-name-best-2012-02-18') + self.assertEqual(slug2, 'option-two-main-name-best') + def test_collapsible_fieldset(self): """ Test that the 'collapse' class in fieldsets definition allows to |
