[Checkins] SVN: zope.testbrowser/branches/lp-93437/ LP #98437: use mechanize's built-in ``submit()`` to submit forms

Tres Seaver tseaver at palladion.com
Sat Apr 24 13:45:00 EDT 2010


Log message for revision 111382:
  LP #98437: use mechanize's built-in ``submit()`` to submit forms
  
  This change allows mechanize to set the "Referer:" (sic) header appropriately.
  

Changed:
  A   zope.testbrowser/branches/lp-93437/
  U   zope.testbrowser/branches/lp-93437/CHANGES.txt
  U   zope.testbrowser/branches/lp-93437/src/zope/testbrowser/browser.py
  U   zope.testbrowser/branches/lp-93437/src/zope/testbrowser/tests.py

-=-
Modified: zope.testbrowser/branches/lp-93437/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt	2010-04-24 17:16:53 UTC (rev 111377)
+++ zope.testbrowser/branches/lp-93437/CHANGES.txt	2010-04-24 17:45:00 UTC (rev 111382)
@@ -5,6 +5,9 @@
 3.8.2 (unreleased)
 ------------------
 
+- LP #98437: use mechanize's built-in ``submit()`` to submit forms, allowing
+  mechanize to set the "Referer:" (sic) header appropriately.
+
 - LP #568806: Update dependency ``mechanize >= 0.2.0``, which now includes
   the ``ClientForm`` APIs.
 

Modified: zope.testbrowser/branches/lp-93437/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/browser.py	2010-04-24 17:16:53 UTC (rev 111377)
+++ zope.testbrowser/branches/lp-93437/src/zope/testbrowser/browser.py	2010-04-24 17:45:00 UTC (rev 111382)
@@ -410,8 +410,9 @@
             label = None
         self._start_timer()
         try:
-            self.mech_browser.open(form.click(
-                id=control.id, name=control.name, label=label, coord=coord))
+            self.mech_browser.form = form
+            self.mech_browser.submit(id=control.id, name=control.name,
+                                     label=label, coord=coord)
         except Exception, e:
             fix_exception_name(e)
             raise

Modified: zope.testbrowser/branches/lp-93437/src/zope/testbrowser/tests.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/tests.py	2010-04-24 17:16:53 UTC (rev 111377)
+++ zope.testbrowser/branches/lp-93437/src/zope/testbrowser/tests.py	2010-04-24 17:45:00 UTC (rev 111382)
@@ -282,7 +282,37 @@
     ...
     """
 
+def test_submit_gets_referrer():
+    """
+    Test for bug #98437: No HTTP_REFERER was sent when submitting a form.
 
+    >>> browser = Browser()
+
+
+    A simple form for testing, like abobe.
+
+    >>> browser.open('''\
+    ... <html><body>
+    ...   <form id="form" action="." method="post"
+    ...                   enctype="multipart/form-data">
+    ...      <input type="submit" name="submit_me" value="GOOD" />
+    ...   </form></body></html>
+    ... ''') # doctest: +ELLIPSIS
+    GET / HTTP/1.1
+    ...
+
+
+    Now submit the form, and see that we get an referrer along:
+
+    >>> form = browser.getForm(id='form')
+    >>> form.submit(name='submit_me') # doctest: +ELLIPSIS
+    POST / HTTP/1.1
+    ...
+    Referer: http://localhost/
+    ...
+"""
+
+
 def test_new_instance_no_contents_should_not_fail(self):
     """
     When first instantiated, the browser has no contents.



More information about the checkins mailing list