Skip to content

Commit cbf1644

Browse files
committed
[ADD] Adding tests for testing header API of urllib.request.Request class
1 parent 7be5644 commit cbf1644

File tree

1 file changed

+48
-24
lines changed

1 file changed

+48
-24
lines changed

Lib/test/test_urllib.py

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1488,48 +1488,72 @@ def open_spam(self, url):
14881488
class RequestTests(unittest.TestCase):
14891489
"""Unit tests for urllib.request.Request."""
14901490

1491-
"""def setUp(self):
1492-
self.Request = urllib.request.Request"""
1491+
def setUp(self):
1492+
self.Request = urllib.request.Request
1493+
1494+
self.headers = {
1495+
'User-agent': ('Mozilla/5.0 (X11; Linux i686; rv:10.0) '
1496+
'Gecko/20100101 Firefox/10.0')
1497+
}
14931498

14941499
def test_default_values(self):
1495-
Request = urllib.request.Request
1496-
request = Request("http://www.python.org")
1500+
request = self.Request("http://www.python.org")
14971501
self.assertEqual(request.get_method(), 'GET')
1498-
request = Request("http://www.python.org", {})
1502+
request = self.Request("http://www.python.org", {})
14991503
self.assertEqual(request.get_method(), 'POST')
15001504

15011505
def test_with_method_arg(self):
1502-
Request = urllib.request.Request
1503-
request = Request("http://www.python.org", method='HEAD')
1506+
request = self.Request("http://www.python.org", method='HEAD')
15041507
self.assertEqual(request.method, 'HEAD')
15051508
self.assertEqual(request.get_method(), 'HEAD')
1506-
request = Request("http://www.python.org", {}, method='HEAD')
1509+
request = self.Request("http://www.python.org", {}, method='HEAD')
15071510
self.assertEqual(request.method, 'HEAD')
15081511
self.assertEqual(request.get_method(), 'HEAD')
1509-
request = Request("http://www.python.org", method='GET')
1512+
request = self.Request("http://www.python.org", method='GET')
15101513
self.assertEqual(request.get_method(), 'GET')
15111514
request.method = 'HEAD'
15121515
self.assertEqual(request.get_method(), 'HEAD')
1513-
"""headers = {
1514-
'User-agent': ('Mozilla/5.0 (X11; Linux i686; rv:10.0) '
1515-
'Gecko/20100101 Firefox/10.0')
1516-
}
1517-
request = Request("http://www.python.org", headers=headers)
1516+
1517+
def test_request_with_headers(self):
1518+
"""Verify headers if passed as a constructor argument."""
1519+
request = self.Request("http://www.python.org", headers=self.headers)
1520+
self.assertDictEqual(request.headers, self.headers)
1521+
1522+
def test_request_add_header(self):
1523+
"""Verify headers if added through `Request.add_header()` method."""
1524+
request = self.Request("http://www.python.org")
1525+
request.add_header('User-agent', self.headers['User-agent'])
1526+
self.assertDictEqual(request.headers, self.headers)
1527+
1528+
def test_request_has_header_returns(self):
1529+
"""Verify presence of headers is marked."""
1530+
request = self.Request("http://www.python.org", headers=self.headers)
15181531
self.assertTrue(request.has_header('User-agent'))
1519-
self.assertEqual(
1520-
request.get_header('User-agent'),
1521-
headers['User-agent']
1522-
)
15231532
self.assertFalse(request.has_header('Content-type'))
1524-
self.assertEqual(request.get_header('Content-type'), None)
1525-
1526-
request.add_header('Content-type', 'text/html; charset=utf-8')
15271533

1528-
self.assertTrue(request.has_header('Content-type'))
1534+
def test_request_get_header(self):
1535+
"""Verify headers returned correctly."""
1536+
request = self.Request("http://www.python.org", headers=self.headers)
15291537
self.assertEqual(
15301538
request.get_header('User-agent'),
1531-
headers['User-agent']
1532-
)"""
1539+
self.headers['User-agent']
1540+
)
1541+
self.assertIsNone(request.get_header('Content-type'))
1542+
1543+
def test_request_header_items(self):
1544+
"""Verify headers itemed correctly."""
1545+
request = self.Request("http://www.python.org", headers=self.headers)
1546+
self.assertListEqual(
1547+
request.header_items(),
1548+
list(self.headers.items())
1549+
)
1550+
1551+
def test_request_header_remove(self):
1552+
"""Verify headers are removed correctly."""
1553+
request = self.Request("http://www.python.org", headers=self.headers)
1554+
self.assertDictEqual(request.headers, self.headers)
1555+
request.remove_header('User-agent'),
1556+
self.assertDictEqual(request.headers, {})
15331557

15341558

15351559
class URL2PathNameTests(unittest.TestCase):

0 commit comments

Comments
 (0)