(root)/
Python-3.11.7/
Lib/
test/
test_urllib_response.py
       1  """Unit tests for code in urllib.response."""
       2  
       3  import socket
       4  import tempfile
       5  import urllib.response
       6  import unittest
       7  from test import support
       8  
       9  if support.is_wasi:
      10      raise unittest.SkipTest("Cannot create socket on WASI")
      11  
      12  
      13  class ESC[4;38;5;81mTestResponse(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      14  
      15      def setUp(self):
      16          self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      17          self.fp = self.sock.makefile('rb')
      18          self.test_headers = {"Host": "www.python.org",
      19                               "Connection": "close"}
      20  
      21      def test_with(self):
      22          addbase = urllib.response.addbase(self.fp)
      23  
      24          self.assertIsInstance(addbase, tempfile._TemporaryFileWrapper)
      25  
      26          def f():
      27              with addbase as spam:
      28                  pass
      29          self.assertFalse(self.fp.closed)
      30          f()
      31          self.assertTrue(self.fp.closed)
      32          self.assertRaises(ValueError, f)
      33  
      34      def test_addclosehook(self):
      35          closehook_called = False
      36  
      37          def closehook():
      38              nonlocal closehook_called
      39              closehook_called = True
      40  
      41          closehook = urllib.response.addclosehook(self.fp, closehook)
      42          closehook.close()
      43  
      44          self.assertTrue(self.fp.closed)
      45          self.assertTrue(closehook_called)
      46  
      47      def test_addinfo(self):
      48          info = urllib.response.addinfo(self.fp, self.test_headers)
      49          self.assertEqual(info.info(), self.test_headers)
      50          self.assertEqual(info.headers, self.test_headers)
      51  
      52      def test_addinfourl(self):
      53          url = "http://www.python.org"
      54          code = 200
      55          infourl = urllib.response.addinfourl(self.fp, self.test_headers,
      56                                               url, code)
      57          self.assertEqual(infourl.info(), self.test_headers)
      58          self.assertEqual(infourl.geturl(), url)
      59          self.assertEqual(infourl.getcode(), code)
      60          self.assertEqual(infourl.headers, self.test_headers)
      61          self.assertEqual(infourl.url, url)
      62          self.assertEqual(infourl.status, code)
      63  
      64      def tearDown(self):
      65          self.sock.close()
      66  
      67  if __name__ == '__main__':
      68      unittest.main()