def are_forms_equal(first: Form, second: Form) -> bool: first_keys = set(first.keys()) second_keys = set(second.keys()) if first_keys != second_keys: return False for k in first_keys: if first[k].value != second[k].value: return False return True
class TestForm(unittest.TestCase): def setUp(self): self.html = ''' <form> <input name="vocals" /> <input name="guitar" type="file" /> <select name="drums"> <option value="roger">Roger<br /> <option value="john">John<br /> </select> <input type="radio" name="bass" value="Roger">Roger<br /> <input type="radio" name="bass" value="John">John<br /> </form> ''' self.form = Form(self.html) def test_fields(self): keys = set(('vocals', 'guitar', 'drums', 'bass')) assert_equal(set(self.form.fields.keys()), keys) assert_equal(set(self.form.keys()), keys) def test_repr(self): assert_equal( repr(self.form), '<RoboForm vocals=, guitar=, drums=roger, bass=>' ) def test_repr_empty(self): assert_equal( repr(Form('<form></form>')), '<RoboForm>' )
class TestForm(unittest.TestCase): def setUp(self): self.html = ''' <form> <input name="vocals" /> <input name="guitar" type="file" /> <select name="drums"> <option value="roger">Roger<br /> <option value="john">John<br /> </select> <input type="radio" name="bass" value="Roger">Roger<br /> <input type="radio" name="bass" value="John">John<br /> </form> ''' self.form = Form(self.html) def test_fields(self): keys = set(('vocals', 'guitar', 'drums', 'bass')) assert_equal(set(self.form.fields.keys()), keys) assert_equal(set(self.form.keys()), keys) def test_repr(self): assert_equal(repr(self.form), '<RoboForm vocals=, guitar=, drums=roger, bass=>') def test_repr_empty(self): assert_equal(repr(Form('<form></form>')), '<RoboForm>')
class TestForm(unittest.TestCase): def setUp(self): self.html = ''' <form> <input name="vocals" /> <input name="guitar" type="file" /> <select name="drums"> <option value="roger">Roger<br /> <option value="john">John<br /> </select> <input type="radio" name="bass" value="Roger">Roger<br /> <input type="radio" name="bass" value="John">John<br /> <input name="multi" value="multi1" /> <input name="multi" value="multi2" /> <input type="submit" name="submit" value="submit" /> </form> ''' self.form = Form(self.html) def test_fields(self): keys = set(('vocals', 'guitar', 'drums', 'bass', 'multi', 'submit')) assert_equal(set(self.form.fields.keys()), keys) assert_equal(set(self.form.keys()), keys) def test_add_field(self): html = '<input name="instrument" />' field = fields.Input(html) self.form.add_field(field) assert_true('instrument' in self.form.fields) def test_add_field_wrong_type(self): assert_raises(ValueError, lambda: self.form.add_field('freddie')) def test_repr(self): assert_equal( repr(self.form), '<RoboForm vocals=, guitar=, drums=roger, bass=, ' 'multi=multi1, multi=multi2, submit=submit>' ) def test_repr_empty(self): assert_equal( repr(Form('<form></form>')), '<RoboForm>' ) def test_repr_unicode(self): form = Form(u'<form><input name="drüms" value="bäss" /></form>') assert_equal( repr(form), '<RoboForm drüms=bäss>' ) def test_serialize(self): serialized = self.form.serialize() assert_equal(serialized.data.getlist('multi'), ['multi1', 'multi2']) assert_equal(serialized.data['submit'], 'submit')
class TestForm(unittest.TestCase): def setUp(self): self.html = ''' <form> <input name="vocals" /> <input name="guitar" type="file" /> <select name="drums"> <option value="roger">Roger<br /> <option value="john">John<br /> </select> <input type="radio" name="bass" value="Roger">Roger<br /> <input type="radio" name="bass" value="John">John<br /> <input name="multi" value="multi1" /> <input name="multi" value="multi2" /> <input type="submit" name="submit" value="submit" /> </form> ''' self.form = Form(self.html) def test_fields(self): keys = set(('vocals', 'guitar', 'drums', 'bass', 'multi', 'submit')) assert_equal(set(self.form.fields.keys()), keys) assert_equal(set(self.form.keys()), keys) def test_add_field(self): html = '<input name="instrument" />' field = fields.Input(html) self.form.add_field(field) assert_true('instrument' in self.form.fields) def test_add_field_wrong_type(self): assert_raises(ValueError, lambda: self.form.add_field('freddie')) def test_repr(self): assert_equal( repr(self.form), '<RoboForm vocals=, guitar=, drums=roger, bass=, ' 'multi=multi1, multi=multi2, submit=submit>') def test_repr_empty(self): assert_equal(repr(Form('<form></form>')), '<RoboForm>') def test_repr_unicode(self): form = Form(u'<form><input name="drüms" value="bäss" /></form>') assert_equal(repr(form), '<RoboForm drüms=bäss>') def test_serialize(self): serialized = self.form.serialize() assert_equal(serialized.data.getlist('multi'), ['multi1', 'multi2']) assert_equal(serialized.data['submit'], 'submit')