[Checkins] SVN: zope.testbrowser/trunk/ Use mechanize's built-in ``submit()`` to submit forms.

Tres Seaver tseaver at palladion.com
Wed May 19 10:01:46 EDT 2010


Log message for revision 112544:
  Use mechanize's built-in ``submit()`` to submit forms.
  
  Allows +  mechanize to set the "Referer:" (sic) header appropriately.
  
  Fixes lp:98437
  

Changed:
  _U  zope.testbrowser/trunk/
  U   zope.testbrowser/trunk/CHANGES.txt
  U   zope.testbrowser/trunk/src/zope/testbrowser/browser.py
  U   zope.testbrowser/trunk/src/zope/testbrowser/tests.py

-=-

Property changes on: zope.testbrowser/trunk
___________________________________________________________________
Added: svn:mergeinfo
   + /zope.testbrowser/branches/lp-93437:111382

Added: svk:merge
   + 62d5b8a3-27da-0310-9561-8e5933582275:/zope.testbrowser/branches/lp-93437:111382


Modified: zope.testbrowser/trunk/CHANGES.txt
===================================================================
--- zope.testbrowser/trunk/CHANGES.txt	2010-05-19 14:01:26 UTC (rev 112543)
+++ zope.testbrowser/trunk/CHANGES.txt	2010-05-19 14:01:45 UTC (rev 112544)
@@ -5,7 +5,8 @@
 3.9.1 (unreleased)
 ------------------
 
-- TBD
+- LP #98437: use mechanize's built-in ``submit()`` to submit forms, allowing
+  mechanize to set the "Referer:" (sic) header appropriately.
 
 
 3.9.0 (2010-05-17)

Modified: zope.testbrowser/trunk/src/zope/testbrowser/browser.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/browser.py	2010-05-19 14:01:26 UTC (rev 112543)
+++ zope.testbrowser/trunk/src/zope/testbrowser/browser.py	2010-05-19 14:01:45 UTC (rev 112544)
@@ -409,8 +409,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/trunk/src/zope/testbrowser/tests.py
===================================================================
--- zope.testbrowser/trunk/src/zope/testbrowser/tests.py	2010-05-19 14:01:26 UTC (rev 112543)
+++ zope.testbrowser/trunk/src/zope/testbrowser/tests.py	2010-05-19 14:01:45 UTC (rev 112544)
@@ -281,7 +281,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