bpo-31325: Fix usage of namedtuple in RobotFileParser.parse() (#4529) · python/cpython@3df02db
@@ -3,7 +3,6 @@
33import threading
44import unittest
55import urllib.robotparser
6-from collections import namedtuple
76from test import support
87from http.server import BaseHTTPRequestHandler, HTTPServer
98@@ -87,6 +86,10 @@ def test_request_rate(self):
8786self.parser.crawl_delay(agent), self.crawl_delay
8887 )
8988if self.request_rate:
89+self.assertIsInstance(
90+self.parser.request_rate(agent),
91+urllib.robotparser.RequestRate
92+ )
9093self.assertEqual(
9194self.parser.request_rate(agent).requests,
9295self.request_rate.requests
@@ -108,7 +111,7 @@ class CrawlDelayAndRequestRateTest(BaseRequestRateTest, unittest.TestCase):
108111Disallow: /%7ejoe/index.html
109112 """
110113agent = 'figtree'
111-request_rate = namedtuple('req_rate', 'requests seconds')(9, 30)
114+request_rate = urllib.robotparser.RequestRate(9, 30)
112115crawl_delay = 3
113116good = [('figtree', '/foo.html')]
114117bad = ['/tmp', '/tmp.html', '/tmp/a.html', '/a%3cd.html', '/a%3Cd.html',
@@ -237,7 +240,7 @@ class DefaultEntryTest(BaseRequestRateTest, unittest.TestCase):
237240Request-rate: 3/15
238241Disallow: /cyberworld/map/
239242 """
240-request_rate = namedtuple('req_rate', 'requests seconds')(3, 15)
243+request_rate = urllib.robotparser.RequestRate(3, 15)
241244crawl_delay = 1
242245good = ['/', '/test.html']
243246bad = ['/cyberworld/map/index.html']