[wwwsearch-commits] r29184 - in wwwsearch/mechanize/trunk: . mechanize test

jjlee at codespeak.net jjlee at codespeak.net
Thu Jun 22 23:19:17 CEST 2006


Author: jjlee
Date: Thu Jun 22 23:19:15 2006
New Revision: 29184

Added:
   wwwsearch/mechanize/trunk/test/test_history.doctest
Modified:
   wwwsearch/mechanize/trunk/mechanize/_html.py
   wwwsearch/mechanize/trunk/test.py
Log:
Add missing history doctest

Modified: wwwsearch/mechanize/trunk/mechanize/_html.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_html.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_html.py	Thu Jun 22 23:19:15 2006
@@ -34,19 +34,29 @@
 
 DEFAULT_ENCODING = "latin-1"
 
+
 class CachingGeneratorFunction(object):
     """Caching wrapper around a no-arguments iterable."""
+
     def __init__(self, iterable):
-        self._iterable = iterable
         self._cache = []
+
+        # wrap iterable to make it non-restartable (otherwise, __call__ would
+        # give incorrect results)
+        def make_gen():
+            for item in iterable:
+                yield item
+        self._generator = make_gen()
+
     def __call__(self):
         cache = self._cache
         for item in cache:
             yield item
-        for item in self._iterable:
+        for item in self._generator:
             cache.append(item)
             yield item
 
+
 class EncodingFinder:
     def __init__(self, default_encoding):
         self._default_encoding = default_encoding
@@ -69,6 +79,7 @@
         # XXX encoding
         return _is_html(ct_hdrs, url, self._allow_xhtml)
 
+
 # idea for this argument-processing trick is from Peter Otten
 class Args:
     def __init__(self, args_map):

Modified: wwwsearch/mechanize/trunk/test.py
==============================================================================
--- wwwsearch/mechanize/trunk/test.py	(original)
+++ wwwsearch/mechanize/trunk/test.py	Thu Jun 22 23:19:15 2006
@@ -134,6 +134,7 @@
     doctest.testfile(os.path.join("test", "test_rfc3986.doctest"))
     doctest.testfile(os.path.join("test", "test_request.doctest"))
     doctest.testfile(os.path.join("test", "test_history.doctest"))
+    doctest.testfile(os.path.join("test", "test_html.doctest"))
     from mechanize import _headersutil, _auth, _clientcookie, _pullparser
     doctest.testmod(_headersutil)
     doctest.testmod(_auth)

Added: wwwsearch/mechanize/trunk/test/test_history.doctest
==============================================================================
--- (empty file)
+++ wwwsearch/mechanize/trunk/test/test_history.doctest	Thu Jun 22 23:19:15 2006
@@ -0,0 +1,12 @@
+>>> from mechanize import History
+
+If nothing has been added, .close should work.
+
+>>> history = History()
+>>> history.close()
+
+Under some circumstances response can be None, in that case
+this method should not raise an exception.
+
+>>> history.add(None, None)
+>>> history.close()


More information about the wwwsearch-commits mailing list