def test_alternative_missing_value(self): """Tests the addition of an empty value at the top of the dropdown that, when selected, updates the field with form.missing_value. """ foo = IntTest2() # note alt. class request = TestRequest() html = Form2(foo, request)() # confirm that i1 is has a blank item at top with value="" self.assert_(patternExists( '<select id="form.i1" name="form.i1" .*>', html)) self.assert_(patternExists( '<option value="">.*</option>', html)) self.assert_(patternExists( '<option selected="selected" value="10">10</option>', html)) # submit form as if top item is selected request.form['form.i1-empty-marker'] = '1' request.form['form.actions.apply'] = u'' html = Form2(foo, request)() # confirm new value is -1 -- i1.missing_value self.assertEqual(foo.i1, -1)
def test_display_editform(self): foo = FileTest() request = TestRequest() # display edit view html = Form(foo, request)() # field should be displayed in a file input element self.assert_( patternExists('<input .* name="form.f1".* type="file".*>', html)) self.assert_( patternExists('<input .* name="form.f2".* type="file".*>', html))
def test_display_editform(self): foo = FileTest() request = TestRequest() # display edit view html = Form(foo, request)() # field should be displayed in a file input element self.assert_(patternExists( '<input .* name="form.f1".* type="file".*>', html)) self.assert_(patternExists( '<input .* name="form.f2".* type="file".*>', html))
def test_display_editform(self): foo = FloatTest() request = TestRequest() # display edit view html = Form(foo, request)() # f1 and f2 should be displayed in text fields self.assert_(patternExists('<input .* name="form.f1".* value="".*>', html)) self.assert_(patternExists('<input .* name="form.f2".* value="1.1".*>', html)) # f3 should be in a dropdown self.assert_(patternExists('<select .*name="form.f3".*>', html)) self.assert_(patternExists('<option selected="selected" value="2.1">2.1</option>', html))
def test_display_editform(self): foo = TextTest() request = TestRequest() html = Form(foo, request)() # all fields should be displayed in text fields self.assert_( patternExists('<textarea .* name="form.s1".*></textarea>', html)) self.assert_( patternExists('<textarea .* name="form.s2".*>foo</textarea>', html)) self.assert_( patternExists('<textarea .* name="form.s3".*></textarea>', html))
def test_display_editform(self): foo = TextLineTest() request = TestRequest() # display edit view html = Form(foo, request)() # s1 and s2 should be displayed in text fields self.assert_(patternExists('<input .* name="form.s1".* value="".*>', html)) self.assert_(patternExists('<input .* name="form.s2".* value="foo".*>', html)) # s3 should be in a dropdown self.assert_(patternExists('<select .*name="form.s3".*>', html)) self.assert_(patternExists('<option selected="selected" value="">.*</option>', html))
def test_display_editform(self): foo = TextTest() request = TestRequest() html = Form(foo, request)() # all fields should be displayed in text fields self.assert_(patternExists( '<textarea .* name="form.s1".*></textarea>', html)) self.assert_(patternExists( '<textarea .* name="form.s2".*>foo</textarea>', html)) self.assert_(patternExists( '<textarea .* name="form.s3".*></textarea>', html))
def test_display_editform(self): foo = IntTest() request = TestRequest() html = Form(foo, request)() # i1 and i2 should be displayed in text fields self.assert_( patternExists('<input .* name="form.i1".* value="".*>', html)) self.assert_( patternExists('<input .* name="form.i2".* value="1".*>', html)) # i3 should be in a dropdown self.assert_(patternExists('<select .*name="form.i3".*>', html)) self.assert_( patternExists('<option selected="selected" value="2">2</option>', html))
def test_display_editform(self): foo = DecimalTest() request = TestRequest() html = Form(foo, request)() # f1 and f2 should be displayed in text fields self.assertTrue( patternExists('<input .* name="form.f1".* value="".*>', html)) self.assertTrue( patternExists('<input .* name="form.f2".* value="1.1".*>', html)) # f3 should be in a dropdown self.assertTrue(patternExists('<select .*name="form.f3".*>', html)) self.assertTrue( patternExists( '<option selected="selected" value="2.1">2.1</option>', html))
def test_display_editform(self): foo = BoolTest() request = TestRequest() html = Form(foo, request)() # b1 and b2 should be displayed in checkbox input fields self.assert_(patternExists( '<input .* checked="checked".* name="form.b1".* ' \ 'type="checkbox".* />', html)) self.assert_(patternExists( '<input .* name="form.b2".* type="checkbox".* />', html)) # confirm that b2 is *not* checked self.assert_(not patternExists( '<input .* checked="checked".* name="form.b2".* ' \ 'type="checkbox".* />', html))
def test_display_editform(self): foo = Foo() request = TestRequest() html = Form(foo, request)() # bar field should be displayed as two radio buttons self.assert_(patternExists( '<input .*checked="checked".*name="form.bar".*type="radio".*' 'value="on".* />', html)) self.assert_(patternExists( '<input .*name="form.bar".*type="radio".*value="off".* />', html)) # a hidden element is used to note that the field is present self.assert_(patternExists( '<input name="form.bar-empty-marker" type="hidden" value="1".* />', html))
def test_display_editform(self): foo = IntTest() request = TestRequest() html = Form(foo, request)() # i1 and i2 should be displayed in text fields self.assert_(patternExists( '<input .* name="form.i1".* value="".*>', html)) self.assert_(patternExists( '<input .* name="form.i2".* value="1".*>', html)) # i3 should be in a dropdown self.assert_(patternExists( '<select .*name="form.i3".*>', html)) self.assert_(patternExists( '<option selected="selected" value="2">2</option>', html))
def test_display_editform(self): foo = BoolTest() request = TestRequest() html = Form(foo, request)() # b1 and b2 should be displayed in checkbox input fields self.assert_(patternExists( '<input .* checked="checked".* name="form.b1".* ' \ 'type="checkbox".* />', html)) self.assert_( patternExists('<input .* name="form.b2".* type="checkbox".* />', html)) # confirm that b2 is *not* checked self.assert_(not patternExists( '<input .* checked="checked".* name="form.b2".* ' \ 'type="checkbox".* />', html))
def test_display_editform(self): foo = TextLineTest() request = TestRequest() # display edit view html = Form(foo, request)() # s1 and s2 should be displayed in text fields self.assert_( patternExists('<input .* name="form.s1".* value="".*>', html)) self.assert_( patternExists('<input .* name="form.s2".* value="foo".*>', html)) # s3 should be in a dropdown self.assert_(patternExists('<select .*name="form.s3".*>', html)) self.assert_( patternExists('<option selected="selected" value="">.*</option>', html))
def test_display_editform(self): foo = Foo() request = TestRequest() html = Form(foo, request)() # bar field should be displayed as two radio buttons self.assert_( patternExists( '<input .*checked="checked".*name="form.bar".*type="radio".*' 'value="on".* />', html)) self.assert_( patternExists( '<input .*name="form.bar".*type="radio".*value="off".* />', html)) # a hidden element is used to note that the field is present self.assert_( patternExists( '<input name="form.bar-empty-marker" type="hidden" value="1".* />', html))
def test_conversion(self): foo = TextTest() request = TestRequest() # confirm that line terminators are converted correctly on post request.form['form.s2'] = u'line1\r\nline2' # CRLF per RFC 822 request.form['form.actions.apply'] = u'' html = Form(foo, request)() self.assertEqual(foo.s2, u'line1\nline2') # confirm conversion to HTML request = TestRequest() html = Form(foo, request)() self.assert_(patternExists('line1\r\nline2', html))
def invalidValueErrorExists(field, source): # assumes this error is displayed for select elements return patternExists( 'Invalid value.*name="field.%s".*</select>' % field, source, re.DOTALL)
def updatedMsgExists(source): return patternExists('<p>Updated .*</p>', source)
def invalidValueErrorExists(field, source): # assumes this error is displayed for select elements return patternExists('Invalid value.*name="field.%s".*</select>' % field, source, re.DOTALL)
def test_display_editform(self): foo = RadioTest() request = TestRequest() # display edit view html = Form(foo, request)() # S3 self.assert_(patternExists( '<select .* name="form.s3".*>', html)) self.assert_(patternExists( '<option selected="selected" value="">', html)) self.assert_(patternExists( '<option value="Bob">', html)) self.assert_(patternExists( '<option value="is">', html)) self.assert_(patternExists( '<option value="Your">', html)) self.assert_(patternExists( '<option value="Uncle">', html)) # S4 joined_body = "".join(html.split("\n")) self.failIf(patternExists( '<select.*name="form.s4".*>.*<option.*value="".*>', joined_body)) self.assert_(patternExists( '<select .* name="form.s4".*>', html)) self.assert_(patternExists( '<option selected="selected" value="1">', html)) self.assert_(patternExists( '<option value="2">', html)) self.assert_(patternExists( '<option value="3">', html)) request = TestRequest() request.form['form.s3'] = u'Bob' request.form['form.s4'] = u'2' request.form['form.actions.apply'] = u'' # display edit view html = Form(foo, request)() self.assert_(patternExists( '<option selected="selected" value="Bob">', html)) self.assert_(patternExists( '<option selected="selected" value="2">', html)) html = Form(foo, request)() self.assert_(patternExists( '<option selected="selected" value="Bob">', html)) self.assert_(patternExists( '<option selected="selected" value="2">', html)) request = TestRequest() request.form['form.s3'] = u'' request.form['form.actions.apply'] = u'' html = Form(foo, request)() self.assert_(patternExists( '<option selected="selected" value="">', html)) self.assert_(patternExists( '<option selected="selected" value="2">', html)) request = TestRequest() html = Form(foo, request)() self.assert_(patternExists( '<option selected="selected" value="">', html))