@@ -173,6 +173,53 @@ def test_some_missing_data(self):
173
173
form = BookForm (data , instance = book )
174
174
self .assertFalse (form .is_valid ())
175
175
self .assertEqual (form .errors ["publisher" ], ["Enter all required values." ])
176
+ self .assertHTMLEqual (
177
+ str (form ),
178
+ """
179
+ <div>
180
+ <label for="id_title">Title:</label>
181
+ <input type="text" name="title" value="Learning MongoDB!" maxlength="50"
182
+ required id="id_title">
183
+ </div>
184
+ <div>
185
+ <fieldset>
186
+ <legend>Publisher:</legend>
187
+ <ul class="errorlist">
188
+ <li>Enter all required values.</li>
189
+ </ul>
190
+ <div>
191
+ <label for="id_publisher-name">Name:</label>
192
+ <input type="text" name="publisher-name" value="Random House!" maxlength="50"
193
+ required id="id_publisher-name">
194
+ </div>
195
+ <div>
196
+ <fieldset>
197
+ <legend>Address:</legend>
198
+ <div>
199
+ <label for="id_publisher-address-po_box">PO Box:</label>
200
+ <input type="text" name="publisher-address-po_box" maxlength="50"
201
+ id="id_publisher-address-po_box">
202
+ </div>
203
+ <div>
204
+ <label for="id_publisher-address-city">City:</label>
205
+ <input type="text" name="publisher-address-city" value="New York City"
206
+ maxlength="20" required id="id_publisher-address-city">
207
+ </div>
208
+ <div>
209
+ <label for="id_publisher-address-state">State:</label>
210
+ <input type="text" name="publisher-address-state" value="NY"
211
+ maxlength="2" required id="id_publisher-address-state">
212
+ </div>
213
+ <div>
214
+ <label for="id_publisher-address-zip_code">Zip code:</label>
215
+ <input type="number" name="publisher-address-zip_code"
216
+ required id="id_publisher-address-zip_code">
217
+ </div>
218
+ </fieldset>
219
+ </div>
220
+ </fieldset>
221
+ </div>""" ,
222
+ )
176
223
177
224
def test_invalid_field_data (self ):
178
225
"""A field's data (state) is too long."""
@@ -196,6 +243,53 @@ def test_invalid_field_data(self):
196
243
form .errors ["publisher" ],
197
244
["Ensure this value has at most 2 characters (it has 8)." ],
198
245
)
246
+ self .assertHTMLEqual (
247
+ str (form ),
248
+ """
249
+ <div>
250
+ <label for="id_title">Title:</label>
251
+ <input type="text" name="title" value="Learning MongoDB!"
252
+ maxlength="50" required id="id_title">
253
+ </div>
254
+ <div>
255
+ <fieldset>
256
+ <legend>Publisher:</legend>
257
+ <ul class="errorlist">
258
+ <li>Ensure this value has at most 2 characters (it has 8).</li>
259
+ </ul>
260
+ <div>
261
+ <label for="id_publisher-name">Name:</label>
262
+ <input type="text" name="publisher-name" value="Random House!"
263
+ maxlength="50" required id="id_publisher-name">
264
+ </div>
265
+ <div>
266
+ <fieldset>
267
+ <legend>Address:</legend>
268
+ <div>
269
+ <label for="id_publisher-address-po_box">PO Box:</label>
270
+ <input type="text" name="publisher-address-po_box"
271
+ maxlength="50" id="id_publisher-address-po_box">
272
+ </div>
273
+ <div>
274
+ <label for="id_publisher-address-city">City:</label>
275
+ <input type="text" name="publisher-address-city" value="New York City"
276
+ maxlength="20" required id="id_publisher-address-city">
277
+ </div>
278
+ <div>
279
+ <label for="id_publisher-address-state">State:</label>
280
+ <input type="text" name="publisher-address-state" value="TOO LONG"
281
+ maxlength="2" required id="id_publisher-address-state">
282
+ </div>
283
+ <div>
284
+ <label for="id_publisher-address-zip_code">Zip code:</label>
285
+ <input type="number" name="publisher-address-zip_code" value="10001"
286
+ required id="id_publisher-address-zip_code">
287
+ </div>
288
+ </fieldset>
289
+ </div>
290
+ </fieldset>
291
+ </div>""" ,
292
+ )
199
293
200
294
def test_all_missing_data (self ):
201
295
"""An embedded model with all data missing triggers a required error."""
0 commit comments