I didn't add an extra test because just this change made `test_upload_without_file` fail with this traceback:
```
======================================================================
ERROR: test_upload_without_file (tests.test_forms.TestFileUpload)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/markus/src/webtest/tests/test_forms.py", line 780, in test_upload_without_file
    upload_form.submit()
  File "/home/markus/src/webtest/webtest/forms.py", line 541, in submit
    params=fields, **args)
  File "/home/markus/src/webtest/webtest/response.py", line 294, in goto
    return method(href, **args)
  File "/home/markus/src/webtest/webtest/app.py", line 260, in post
    content_type=content_type)
  File "/home/markus/src/webtest/webtest/app.py", line 598, in _gen_request
    params, upload_files or ())
  File "/home/markus/src/webtest/webtest/app.py", line 390, in encode_multipart
    _append_file([key] + list(value.value))
  File "/home/markus/src/webtest/webtest/app.py", line 361, in _append_file
    key, filename, value, fcontent = self._get_file_info(file_info)
  File "/home/markus/src/webtest/webtest/app.py", line 653, in _get_file_info
    % repr(file_info)[:100])
ValueError: upload_files need to be a list of tuples of (fieldname, filename, filecontent, mimetype) or (fieldname, filename, filecontent) or (fieldname, filename); you gave: "['file-field', u's', u'o', u'm', u'e', u'/', u'p', u'a', u't', u'h', u'/', u'f', u'i', u'l', u'e', u"
```