MCPcopy Index your code
hub / github.com/Pylons/webtest / submit_fields

Method submit_fields

webtest/forms.py:653–700  ·  view source on GitHub ↗

Return a list of ``[(name, value), ...]`` for the current state of the form. :param name: Same as for :meth:`submit` :param index: Same as for :meth:`submit`

(self, name=None, index=None, submit_value=None)

Source from the content-addressed store, hash-verified

651 return uploads
652
653 def submit_fields(self, name=None, index=None, submit_value=None):
654 """Return a list of ``[(name, value), ...]`` for the current state of
655 the form.
656
657 :param name: Same as for :meth:`submit`
658 :param index: Same as for :meth:`submit`
659
660 """
661 submit = []
662 # Use another name here so we can keep function param the same for BWC.
663 submit_name = name
664 if index is not None and submit_value is not None:
665 raise ValueError("Can't specify both submit_value and index.")
666
667 # If no particular button was selected, use the first one
668 if index is None and submit_value is None:
669 index = 0
670
671 # This counts all fields with the submit name not just submit fields.
672 current_index = 0
673 for name, field in self.field_order:
674 if name is None: # pragma: no cover
675 continue
676 if submit_name is not None and name == submit_name:
677 if index is not None and current_index == index:
678 submit.append((field.pos, name, field.value_if_submitted()))
679 if submit_value is not None and \
680 field.value_if_submitted() == submit_value:
681 submit.append((field.pos, name, field.value_if_submitted()))
682 current_index += 1
683 else:
684 value = field.value
685 if value is None:
686 continue
687 if isinstance(field, File):
688 submit.append((field.pos, name, field))
689 continue
690 if isinstance(field, Radio):
691 if field.selectedIndex is not None:
692 submit.append((field.optionPositions[field.selectedIndex], name, value))
693 continue
694 if isinstance(value, list):
695 for item in value:
696 submit.append((field.pos, name, item))
697 else:
698 submit.append((field.pos, name, value))
699 submit.sort(key=operator.itemgetter(0))
700 return [x[1:] for x in submit]
701
702 def __repr__(self):
703 value = '<Form'

Callers 8

submitMethod · 0.95
test_inputMethod · 0.80
test_input_unicodeMethod · 0.80
test_input_no_defaultMethod · 0.80

Calls 1

value_if_submittedMethod · 0.80

Tested by 7

test_inputMethod · 0.64
test_input_unicodeMethod · 0.64
test_input_no_defaultMethod · 0.64