[wwwsearch-commits] r32773 - in wwwsearch/mechanize/trunk: mechanize test
jjlee at codespeak.net
jjlee at codespeak.net
Sat Sep 30 21:28:55 CEST 2006
Author: jjlee
Date: Sat Sep 30 21:28:53 2006
New Revision: 32773
Modified:
wwwsearch/mechanize/trunk/mechanize/_mechanize.py
wwwsearch/mechanize/trunk/test/test_browser.py
Log:
Be even more noisy about use after .close()
Modified: wwwsearch/mechanize/trunk/mechanize/_mechanize.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_mechanize.py (original)
+++ wwwsearch/mechanize/trunk/mechanize/_mechanize.py Sat Sep 30 21:28:53 2006
@@ -116,13 +116,22 @@
UserAgent.__init__(self) # do this last to avoid __getattr__ problems
def close(self):
+ UserAgent.close(self)
if self._response is not None:
self._response.close()
- UserAgent.close(self)
if self._history is not None:
self._history.close()
self._history = None
+
+ # make use after .close easy to spot
+ self.form = None
self.request = self._response = None
+ self.request = self.response = self.set_response = None
+ self.geturl = self.reload = self.back = None
+ self.clear_history = self.set_cookie = self.links = self.forms = None
+ self.viewing_html = self.encoding = self.title = None
+ self.select_form = self.click = self.submit = self.click_link = None
+ self.follow_link = self.find_link = None
def open(self, url, data=None):
if self._response is not None:
Modified: wwwsearch/mechanize/trunk/test/test_browser.py
==============================================================================
--- wwwsearch/mechanize/trunk/test/test_browser.py (original)
+++ wwwsearch/mechanize/trunk/test/test_browser.py Sat Sep 30 21:28:53 2006
@@ -218,8 +218,8 @@
self.assertRaises(mechanize.BrowserStateError, b.back, 2)
r8 = b.open("/spam")
- # even if we get a HTTPError, history and .response() should still get
- # updated
+ # even if we get a HTTPError, history, .response() and .request should
+ # still get updated
error = urllib2.HTTPError("http://example.com/bad", 503, "Oops",
MockHeaders(), StringIO.StringIO())
b.add_handler(make_mock_handler()([("https_open", error)]))
@@ -228,8 +228,17 @@
self.assertEqual(b.request.get_full_url(), "https://example.com/badreq")
self.assert_(same_response(b.back(), r8))
+ # .close() should make use of Browser methods and attributes complain
+ # noisily, since they should not be called after .close()
+ b.form = "blah"
b.close()
- # XXX assert BrowserStateError
+ for attr in ("form open error retrieve add_handler "
+ "request response set_response geturl reload back "
+ "clear_history set_cookie links forms viewing_html "
+ "encoding title select_form click submit click_link "
+ "follow_link find_link".split()
+ ):
+ self.assert_(getattr(b, attr) is None)
def test_reload_read_incomplete(self):
import mechanize
More information about the wwwsearch-commits
mailing list