[Python-checkins] python/dist/src/Lib/test test_urllib2.py,1.8,1.9

jhylton at users.sourceforge.net jhylton at users.sourceforge.net
Wed Dec 17 15:42:41 EST 2003


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv9529

Modified Files:
	test_urllib2.py 
Log Message:
Add methods to MockHTTPClass for modern httplib interface.
Replace lots of assert_(x == y) with assertEqual(x, y).


Index: test_urllib2.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_urllib2.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** test_urllib2.py	14 Dec 2003 05:27:34 -0000	1.8
--- test_urllib2.py	17 Dec 2003 20:42:38 -0000	1.9
***************
*** 165,174 ****
          # (instead of response), which becomes the OpenerDirector's return
          # value.
!         self.assert_(r == handlers[2])
          calls = [(handlers[0], "http_open"), (handlers[2], "http_open")]
          for expected, got in zip(calls, o.calls):
              handler, name, args, kwds = got
!             self.assert_((handler, name) == expected)
!             self.assert_(args == (req,))
  
      def test_handler_order(self):
--- 165,174 ----
          # (instead of response), which becomes the OpenerDirector's return
          # value.
!         self.assertEqual(r, handlers[2])
          calls = [(handlers[0], "http_open"), (handlers[2], "http_open")]
          for expected, got in zip(calls, o.calls):
              handler, name, args, kwds = got
!             self.assertEqual((handler, name), expected)
!             self.assertEqual(args, (req,))
  
      def test_handler_order(self):
***************
*** 187,192 ****
          r = o.open("http://example.com/")
          # handlers called in reverse order, thanks to their sort order
!         self.assert_(o.calls[0][0] == handlers[1])
!         self.assert_(o.calls[1][0] == handlers[0])
  
      def test_raise(self):
--- 187,192 ----
          r = o.open("http://example.com/")
          # handlers called in reverse order, thanks to their sort order
!         self.assertEqual(o.calls[0][0], handlers[1])
!         self.assertEqual(o.calls[1][0], handlers[0])
  
      def test_raise(self):
***************
*** 201,205 ****
          req = Request("http://example.com/")
          self.assertRaises(urllib2.URLError, o.open, req)
!         self.assert_(o.calls == [(handlers[0], "http_open", (req,), {})])
  
  ##     def test_error(self):
--- 201,205 ----
          req = Request("http://example.com/")
          self.assertRaises(urllib2.URLError, o.open, req)
!         self.assertEqual(o.calls, [(handlers[0], "http_open", (req,), {})])
  
  ##     def test_error(self):
***************
*** 227,235 ****
          assert len(o.calls) == 2
          calls = [(handlers[0], "http_open", (req,)),
!                  (handlers[2], "http_error_302", (req, Unknown(), 302, "", {}))]
          for expected, got in zip(calls, o.calls):
              handler, method_name, args = expected
!             self.assert_((handler, method_name) == got[:2])
!             assert args == got[2]
  
      def test_processors(self):
--- 227,236 ----
          assert len(o.calls) == 2
          calls = [(handlers[0], "http_open", (req,)),
!                  (handlers[2], "http_error_302",
!                   (req, Unknown(), 302, "", {}))]
          for expected, got in zip(calls, o.calls):
              handler, method_name, args = expected
!             self.assertEqual((handler, method_name), got[:2])
!             self.assertEqual(args, got[2])
  
      def test_processors(self):
***************
*** 248,264 ****
          # processor methods are called on *all* handlers that define them,
          # not just the first handler that handles the request
!         calls = [(handlers[0], "http_request"), (handlers[1], "http_request"),
!                  (handlers[0], "http_response"), (handlers[1], "http_response")]
  
          for i, (handler, name, args, kwds) in enumerate(o.calls):
              if i < 2:
                  # *_request
!                 self.assert_((handler, name) == calls[i])
!                 self.assert_(len(args) == 1)
                  self.assert_(isinstance(args[0], Request))
              else:
                  # *_response
!                 self.assert_((handler, name) == calls[i])
!                 self.assert_(len(args) == 2)
                  self.assert_(isinstance(args[0], Request))
                  # response from opener.open is None, because there's no
--- 249,266 ----
          # processor methods are called on *all* handlers that define them,
          # not just the first handler that handles the request
!         calls = [
!             (handlers[0], "http_request"), (handlers[1], "http_request"),
!             (handlers[0], "http_response"), (handlers[1], "http_response")]
  
          for i, (handler, name, args, kwds) in enumerate(o.calls):
              if i < 2:
                  # *_request
!                 self.assertEqual((handler, name), calls[i])
!                 self.assertEqual(len(args), 1)
                  self.assert_(isinstance(args[0], Request))
              else:
                  # *_response
!                 self.assertEqual((handler, name), calls[i])
!                 self.assertEqual(len(args), 2)
                  self.assert_(isinstance(args[0], Request))
                  # response from opener.open is None, because there's no
***************
*** 308,319 ****
              # ftp authentication not yet implemented by FTPHandler
              self.assert_(h.user == h.passwd == "")
!             self.assert_(h.host == socket.gethostbyname(host))
!             self.assert_(h.port == port)
!             self.assert_(h.dirs == dirs)
!             self.assert_(h.ftpwrapper.filename == filename)
!             self.assert_(h.ftpwrapper.filetype == type_)
              headers = r.info()
!             self.assert_(headers["Content-type"] == mimetype)
!             self.assert_(int(headers["Content-length"]) == len(data))
  
      def test_file(self):
--- 310,321 ----
              # ftp authentication not yet implemented by FTPHandler
              self.assert_(h.user == h.passwd == "")
!             self.assertEqual(h.host, socket.gethostbyname(host))
!             self.assertEqual(h.port, port)
!             self.assertEqual(h.dirs, dirs)
!             self.assertEqual(h.ftpwrapper.filename, filename)
!             self.assertEqual(h.ftpwrapper.filetype, type_)
              headers = r.info()
!             self.assertEqual(headers["Content-type"], mimetype)
!             self.assertEqual(int(headers["Content-length"]), len(data))
  
      def test_file(self):
***************
*** 351,357 ****
              finally:
                  os.remove(TESTFN)
!             self.assert_(data == towrite)
!             self.assert_(headers["Content-type"] == "text/plain")
!             self.assert_(headers["Content-length"] == "13")
              # Fudge Last-modified string comparison by one second to
              # prevent spurious failure on crossing a second boundary while
--- 353,359 ----
              finally:
                  os.remove(TESTFN)
!             self.assertEqual(data, towrite)
!             self.assertEqual(headers["Content-type"], "text/plain")
!             self.assertEqual(headers["Content-length"], "13")
              # Fudge Last-modified string comparison by one second to
              # prevent spurious failure on crossing a second boundary while
***************
*** 404,410 ****
              else:
                  self.assert_(o.req is req)
!                 self.assert_(req.type == "ftp")
  
      def test_http(self):
          class MockHTTPClass:
              def __init__(self):
--- 406,418 ----
              else:
                  self.assert_(o.req is req)
!                 self.assertEqual(req.type, "ftp")
  
      def test_http(self):
+         class MockHTTPResponse:
+             def __init__(self, fp, msg, status, reason):
+                 self.fp = fp
+                 self.msg = msg
+                 self.status = status
+                 self.reason = reason
          class MockHTTPClass:
              def __init__(self):
***************
*** 415,419 ****
                  self.host = host
                  return self
!             def set_debuglevel(self, level): self.level = level
              def putrequest(self, method, selector):
                  self.method, self.selector = method, selector
--- 423,437 ----
                  self.host = host
                  return self
!             def set_debuglevel(self, level):
!                 self.level = level
!             def request(self, method, url, body=None, headers={}):
!                 self.method = method
!                 self.selector = url
!                 self.req_headers += headers.items()
!                 if body:
!                     self.data = body
!                 if self.raise_on_endheaders:
!                     import socket
!                     raise socket.error()
              def putrequest(self, method, selector):
                  self.method, self.selector = method, selector
***************
*** 424,430 ****
                      import socket
                      raise socket.error()
!             def send(self, data): self.data = data
!             def getreply(self): return 200, "OK", {}
!             def getfile(self): return MockFile()
  
          h = urllib2.AbstractHTTPHandler()
--- 442,453 ----
                      import socket
                      raise socket.error()
!             def send(self, data):
!                 self.data = data
!             def getreply(self):
!                 return 200, "OK", {}
!             def getresponse(self):
!                 return MockHTTPResponse(MockFile(), {}, 200, "OK")
!             def getfile(self):
!                 return MockFile()
  
          h = urllib2.AbstractHTTPHandler()
***************
*** 444,455 ****
              hdrs = r.info()
              hdrs.get; hdrs.has_key  # r.info() gives dict from .getreply()
!             self.assert_(r.geturl() == url)
  
!             self.assert_(http.host == "example.com")
!             self.assert_(http.level == 0)
!             self.assert_(http.method == method)
!             self.assert_(http.selector == "/")
!             self.assert_(http.req_headers == [("Foo", "bar"), ("Spam", "eggs")])
!             self.assert_(http.data == data)
  
          # check socket.error converted to URLError
--- 467,479 ----
              hdrs = r.info()
              hdrs.get; hdrs.has_key  # r.info() gives dict from .getreply()
!             self.assertEqual(r.geturl(), url)
  
!             self.assertEqual(http.host, "example.com")
!             self.assertEqual(http.level, 0)
!             self.assertEqual(http.method, method)
!             self.assertEqual(http.selector, "/")
!             self.assertEqual(http.req_headers,
!                              [("Foo", "bar"), ("Spam", "eggs")])
!             self.assertEqual(http.data, data)
  
          # check socket.error converted to URLError
***************
*** 467,476 ****
                  self.assert_("Content-type" not in req.unredirected_hdrs)
              else:  # POST
!                 self.assert_(req.unredirected_hdrs["Content-length"] == "0")
!                 self.assert_(req.unredirected_hdrs["Content-type"] ==
                               "application/x-www-form-urlencoded")
              # XXX the details of Host could be better tested
!             self.assert_(req.unredirected_hdrs["Host"] == "example.com")
!             self.assert_(req.unredirected_hdrs["Spam"] == "eggs")
  
              # don't clobber existing headers
--- 491,500 ----
                  self.assert_("Content-type" not in req.unredirected_hdrs)
              else:  # POST
!                 self.assertEqual(req.unredirected_hdrs["Content-length"], "0")
!                 self.assertEqual(req.unredirected_hdrs["Content-type"],
                               "application/x-www-form-urlencoded")
              # XXX the details of Host could be better tested
!             self.assertEqual(req.unredirected_hdrs["Host"], "example.com")
!             self.assertEqual(req.unredirected_hdrs["Spam"], "eggs")
  
              # don't clobber existing headers
***************
*** 480,487 ****
              req.add_unredirected_header("Spam", "foo")
              newreq = h.do_request(req)
!             self.assert_(req.unredirected_hdrs["Content-length"] == "foo")
!             self.assert_(req.unredirected_hdrs["Content-type"] == "bar")
!             self.assert_(req.unredirected_hdrs["Host"] == "baz")
!             self.assert_(req.unredirected_hdrs["Spam"] == "foo")
  
      def test_errors(self):
--- 504,511 ----
              req.add_unredirected_header("Spam", "foo")
              newreq = h.do_request(req)
!             self.assertEqual(req.unredirected_hdrs["Content-length"], "foo")
!             self.assertEqual(req.unredirected_hdrs["Content-type"], "bar")
!             self.assertEqual(req.unredirected_hdrs["Host"], "baz")
!             self.assertEqual(req.unredirected_hdrs["Spam"], "foo")
  
      def test_errors(self):
***************
*** 499,504 ****
          r = MockResponse(201, "Created", {}, "", url)
          self.assert_(h.http_response(req, r) is None)
!         self.assert_(o.proto == "http")  # o.error called
!         self.assert_(o.args == (req, r, 201, "Created", {}))
  
      def test_redirect(self):
--- 523,528 ----
          r = MockResponse(201, "Created", {}, "", url)
          self.assert_(h.http_response(req, r) is None)
!         self.assertEqual(o.proto, "http")  # o.error called
!         self.assertEqual(o.args, (req, r, 201, "Created", {}))
  
      def test_redirect(self):
***************
*** 520,529 ****
                      # 307 in response to POST requires user OK
                      self.assert_(code == 307 and data is not None)
!                 self.assert_(o.req.get_full_url() == to_url)
                  try:
!                     self.assert_(o.req.get_method() == "GET")
                  except AttributeError:
                      self.assert_(not o.req.has_data())
!                 self.assert_(o.req.headers["Nonsense"] == "viking=withhold")
                  self.assert_("Spam" not in o.req.headers)
                  self.assert_("Spam" not in o.req.unredirected_hdrs)
--- 544,554 ----
                      # 307 in response to POST requires user OK
                      self.assert_(code == 307 and data is not None)
!                 self.assertEqual(o.req.get_full_url(), to_url)
                  try:
!                     self.assertEqual(o.req.get_method(), "GET")
                  except AttributeError:
                      self.assert_(not o.req.has_data())
!                 self.assertEqual(o.req.headers["Nonsense"],
!                                  "viking=withhold")
                  self.assert_("Spam" not in o.req.headers)
                  self.assert_("Spam" not in o.req.unredirected_hdrs)
***************
*** 560,564 ****
                  count = count + 1
          except urllib2.HTTPError:
!             self.assert_(count == urllib2.HTTPRedirectHandler.max_redirections)
  
  
--- 585,590 ----
                  count = count + 1
          except urllib2.HTTPError:
!             self.assertEqual(count,
!                              urllib2.HTTPRedirectHandler.max_redirections)
  
  





More information about the Python-checkins mailing list