Author: ramiro
Date: 2011-08-21 11:09:08 -0700 (Sun, 21 Aug 2011)
New Revision: 16636

Modified:
   django/trunk/tests/modeltests/model_forms/tests.py
Log:
Fixed #16644 -- Fixed one additional test that was failing in Oracle due to 
false assumptions about the primary keys of objects. Thanks Aymeric Augustin 
for report and patch.

Modified: django/trunk/tests/modeltests/model_forms/tests.py
===================================================================
--- django/trunk/tests/modeltests/model_forms/tests.py  2011-08-21 17:19:35 UTC 
(rev 16635)
+++ django/trunk/tests/modeltests/model_forms/tests.py  2011-08-21 18:09:08 UTC 
(rev 16636)
@@ -658,21 +658,21 @@
 <tr><th>Pub date:</th><td><input type="text" name="pub_date" /></td></tr>
 <tr><th>Writer:</th><td><select name="writer">
 <option value="" selected="selected">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="1">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s">Mike Royko</option>
 </select></td></tr>
 <tr><th>Article:</th><td><textarea rows="10" cols="40" 
name="article"></textarea></td></tr>
 <tr><th>Categories:</th><td><select multiple="multiple" name="categories">
-<option value="1">Entertainment</option>
-<option value="2">It&#39;s a test</option>
-<option value="3">Third test</option>
+<option value="%s">Entertainment</option>
+<option value="%s">It&#39;s a test</option>
+<option value="%s">Third test</option>
 </select><br /><span class="helptext"> Hold down "Control", or "Command" on a 
Mac, to select more than one.</span></td></tr>
 <tr><th>Status:</th><td><select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></td></tr>''')
+</select></td></tr>''' % (w_woodward.pk, w_royko.pk, c1.pk, c2.pk, c3.pk))
 
         # You can restrict a form to a subset of the complete list of fields
         # by providing a 'fields' argument. If you try to save a
@@ -706,21 +706,21 @@
 <li>Pub date: <input type="text" name="pub_date" value="1988-01-04" /></li>
 <li>Writer: <select name="writer">
 <option value="">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="1" selected="selected">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s" selected="selected">Mike Royko</option>
 </select></li>
 <li>Article: <textarea rows="10" cols="40" 
name="article">Hello.</textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
-<option value="1">Entertainment</option>
-<option value="2">It&#39;s a test</option>
-<option value="3">Third test</option>
+<option value="%s">Entertainment</option>
+<option value="%s">It&#39;s a test</option>
+<option value="%s">Third test</option>
 </select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, 
to select more than one.</span></li>
 <li>Status: <select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></li>''')
+</select></li>''' % (w_woodward.pk, w_royko.pk, c1.pk, c2.pk, c3.pk))
         f = TestArticleForm({
                 'headline': u'Test headline',
                 'slug': 'test-headline',
@@ -760,21 +760,21 @@
 <li>Pub date: <input type="text" name="pub_date" value="1988-01-04" /></li>
 <li>Writer: <select name="writer">
 <option value="">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="1" selected="selected">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s" selected="selected">Mike Royko</option>
 </select></li>
 <li>Article: <textarea rows="10" cols="40" 
name="article">Hello.</textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
-<option value="1" selected="selected">Entertainment</option>
-<option value="2">It&#39;s a test</option>
-<option value="3">Third test</option>
+<option value="%s" selected="selected">Entertainment</option>
+<option value="%s">It&#39;s a test</option>
+<option value="%s">Third test</option>
 </select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, 
to select more than one.</span></li>
 <li>Status: <select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></li>''')
+</select></li>''' % (w_woodward.pk, w_royko.pk, c1.pk, c2.pk, c3.pk))
 
         # Initial values can be provided for model forms
         f = TestArticleForm(
@@ -788,21 +788,21 @@
 <li>Pub date: <input type="text" name="pub_date" /></li>
 <li>Writer: <select name="writer">
 <option value="" selected="selected">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="1">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s">Mike Royko</option>
 </select></li>
 <li>Article: <textarea rows="10" cols="40" name="article"></textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
-<option value="1" selected="selected">Entertainment</option>
-<option value="2" selected="selected">It&#39;s a test</option>
-<option value="3">Third test</option>
+<option value="%s" selected="selected">Entertainment</option>
+<option value="%s" selected="selected">It&#39;s a test</option>
+<option value="%s">Third test</option>
 </select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, 
to select more than one.</span></li>
 <li>Status: <select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></li>''')
+</select></li>''' % (w_woodward.pk, w_royko.pk, c1.pk, c2.pk, c3.pk))
 
         f = TestArticleForm({
                 'headline': u'New headline',
@@ -882,57 +882,58 @@
 <li>Pub date: <input type="text" name="pub_date" /></li>
 <li>Writer: <select name="writer">
 <option value="" selected="selected">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="1">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s">Mike Royko</option>
 </select></li>
 <li>Article: <textarea rows="10" cols="40" name="article"></textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
-<option value="1">Entertainment</option>
-<option value="2">It&#39;s a test</option>
-<option value="3">Third</option>
+<option value="%s">Entertainment</option>
+<option value="%s">It&#39;s a test</option>
+<option value="%s">Third</option>
 </select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, 
to select more than one.</span></li>
 <li>Status: <select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></li>''')
+</select></li>''' % (w_woodward.pk, w_royko.pk, c1.pk, c2.pk, c3.pk))
 
         c4 = Category.objects.create(name='Fourth', url='4th')
         self.assertEqual(c4.name, 'Fourth')
-        self.assertEqual(Writer.objects.create(name='Carl Bernstein').name, 
'Carl Bernstein')
+        w_bernstein = Writer.objects.create(name='Carl Bernstein')
+        self.assertEqual(w_bernstein.name, 'Carl Bernstein')
         self.assertEqual(f.as_ul(), '''<li>Headline: <input type="text" 
name="headline" maxlength="50" /></li>
 <li>Slug: <input type="text" name="slug" maxlength="50" /></li>
 <li>Pub date: <input type="text" name="pub_date" /></li>
 <li>Writer: <select name="writer">
 <option value="" selected="selected">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="3">Carl Bernstein</option>
-<option value="1">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s">Carl Bernstein</option>
+<option value="%s">Mike Royko</option>
 </select></li>
 <li>Article: <textarea rows="10" cols="40" name="article"></textarea></li>
 <li>Categories: <select multiple="multiple" name="categories">
-<option value="1">Entertainment</option>
-<option value="2">It&#39;s a test</option>
-<option value="3">Third</option>
-<option value="4">Fourth</option>
+<option value="%s">Entertainment</option>
+<option value="%s">It&#39;s a test</option>
+<option value="%s">Third</option>
+<option value="%s">Fourth</option>
 </select> <span class="helptext"> Hold down "Control", or "Command" on a Mac, 
to select more than one.</span></li>
 <li>Status: <select name="status">
 <option value="" selected="selected">---------</option>
 <option value="1">Draft</option>
 <option value="2">Pending</option>
 <option value="3">Live</option>
-</select></li>''')
+</select></li>''' % (w_woodward.pk, w_bernstein.pk, w_royko.pk, c1.pk, c2.pk, 
c3.pk, c4.pk))
 
         # ModelChoiceField 
############################################################
 
         f = forms.ModelChoiceField(Category.objects.all())
         self.assertEqual(list(f.choices), [
             (u'', u'---------'),
-            (1, u'Entertainment'),
-            (2, u"It's a test"),
-            (3, u'Third'),
-            (4, u'Fourth')])
+            (c1.pk, u'Entertainment'),
+            (c2.pk, u"It's a test"),
+            (c3.pk, u'Third'),
+            (c4.pk, u'Fourth')])
         with self.assertRaises(ValidationError):
             f.clean('')
         with self.assertRaises(ValidationError):
@@ -967,9 +968,9 @@
         f.queryset = Category.objects.exclude(name='Fourth')
         self.assertEqual(list(f.choices), [
             (u'', u'---------'),
-            (1, u'Entertainment'),
-            (2, u"It's a test"),
-            (3, u'Third')])
+            (c1.pk, u'Entertainment'),
+            (c2.pk, u"It's a test"),
+            (c3.pk, u'Third')])
         self.assertEqual(f.clean(c3.id).name, 'Third')
         with self.assertRaises(ValidationError):
             f.clean(c4.id)
@@ -977,31 +978,31 @@
         # check that we can safely iterate choices repeatedly
         gen_one = list(f.choices)
         gen_two = f.choices
-        self.assertEqual(gen_one[2], (2, u"It's a test"))
+        self.assertEqual(gen_one[2], (c2.pk, u"It's a test"))
         self.assertEqual(list(gen_two), [
             (u'', u'---------'),
-            (1, u'Entertainment'),
-            (2, u"It's a test"),
-            (3, u'Third')])
+            (c1.pk, u'Entertainment'),
+            (c2.pk, u"It's a test"),
+            (c3.pk, u'Third')])
 
         # check that we can override the label_from_instance method to print 
custom labels (#4620)
         f.queryset = Category.objects.all()
         f.label_from_instance = lambda obj: "category " + str(obj)
         self.assertEqual(list(f.choices), [
             (u'', u'---------'),
-            (1, 'category Entertainment'),
-            (2, "category It's a test"),
-            (3, 'category Third'),
-            (4, 'category Fourth')])
+            (c1.pk, 'category Entertainment'),
+            (c2.pk, "category It's a test"),
+            (c3.pk, 'category Third'),
+            (c4.pk, 'category Fourth')])
 
         # ModelMultipleChoiceField 
####################################################
 
         f = forms.ModelMultipleChoiceField(Category.objects.all())
         self.assertEqual(list(f.choices), [
-            (1, u'Entertainment'),
-            (2, u"It's a test"),
-            (3, u'Third'),
-            (4, u'Fourth')])
+            (c1.pk, u'Entertainment'),
+            (c2.pk, u"It's a test"),
+            (c3.pk, u'Third'),
+            (c4.pk, u'Fourth')])
         with self.assertRaises(ValidationError):
             f.clean(None)
         with self.assertRaises(ValidationError):
@@ -1046,9 +1047,9 @@
         # queryset can be changed after the field is created.
         f.queryset = Category.objects.exclude(name='Fourth')
         self.assertEqual(list(f.choices), [
-            (1, u'Entertainment'),
-            (2, u"It's a test"),
-            (3, u'Third')])
+            (c1.pk, u'Entertainment'),
+            (c2.pk, u"It's a test"),
+            (c3.pk, u'Third')])
         self.assertEqual(map(lambda o: o.name, f.clean([c3.id])), ["Third"])
         with self.assertRaises(ValidationError):
             f.clean([c4.id])
@@ -1058,10 +1059,10 @@
         f.queryset = Category.objects.all()
         f.label_from_instance = lambda obj: "multicategory " + str(obj)
         self.assertEqual(list(f.choices), [
-            (1, 'multicategory Entertainment'),
-            (2, "multicategory It's a test"),
-            (3, 'multicategory Third'),
-            (4, 'multicategory Fourth')])
+            (c1.pk, 'multicategory Entertainment'),
+            (c2.pk, "multicategory It's a test"),
+            (c3.pk, 'multicategory Third'),
+            (c4.pk, 'multicategory Fourth')])
 
         # OneToOneField 
###############################################################
 
@@ -1082,12 +1083,12 @@
         form = WriterProfileForm()
         self.assertEqual(form.as_p(), '''<p><label 
for="id_writer">Writer:</label> <select name="writer" id="id_writer">
 <option value="" selected="selected">---------</option>
-<option value="2">Bob Woodward</option>
-<option value="3">Carl Bernstein</option>
-<option value="4">Joe Better</option>
-<option value="1">Mike Royko</option>
+<option value="%s">Bob Woodward</option>
+<option value="%s">Carl Bernstein</option>
+<option value="%s">Joe Better</option>
+<option value="%s">Mike Royko</option>
 </select></p>
-<p><label for="id_age">Age:</label> <input type="text" name="age" id="id_age" 
/></p>''')
+<p><label for="id_age">Age:</label> <input type="text" name="age" id="id_age" 
/></p>''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk))
 
         data = {
             'writer': unicode(w_woodward.pk),
@@ -1100,12 +1101,12 @@
         form = WriterProfileForm(instance=instance)
         self.assertEqual(form.as_p(), '''<p><label 
for="id_writer">Writer:</label> <select name="writer" id="id_writer">
 <option value="">---------</option>
-<option value="2" selected="selected">Bob Woodward</option>
-<option value="3">Carl Bernstein</option>
-<option value="4">Joe Better</option>
-<option value="1">Mike Royko</option>
+<option value="%s" selected="selected">Bob Woodward</option>
+<option value="%s">Carl Bernstein</option>
+<option value="%s">Joe Better</option>
+<option value="%s">Mike Royko</option>
 </select></p>
-<p><label for="id_age">Age:</label> <input type="text" name="age" value="65" 
id="id_age" /></p>''')
+<p><label for="id_age">Age:</label> <input type="text" name="age" value="65" 
id="id_age" /></p>''' % (w_woodward.pk, w_bernstein.pk, bw.pk, w_royko.pk))
 
     def test_phone_number_field(self):
         f = PhoneNumberForm({'phone': '(312) 555-1212', 'description': 
'Assistance'})

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to