bpo-31325: Fix usage of namedtuple in RobotFileParser.parse() (#4529) · python/cpython@3df02db

@@ -3,7 +3,6 @@

33

import threading

44

import unittest

55

import urllib.robotparser

6-

from collections import namedtuple

76

from test import support

87

from http.server import BaseHTTPRequestHandler, HTTPServer

98

@@ -87,6 +86,10 @@ def test_request_rate(self):

8786

self.parser.crawl_delay(agent), self.crawl_delay

8887

)

8988

if self.request_rate:

89+

self.assertIsInstance(

90+

self.parser.request_rate(agent),

91+

urllib.robotparser.RequestRate

92+

)

9093

self.assertEqual(

9194

self.parser.request_rate(agent).requests,

9295

self.request_rate.requests

@@ -108,7 +111,7 @@ class CrawlDelayAndRequestRateTest(BaseRequestRateTest, unittest.TestCase):

108111

Disallow: /%7ejoe/index.html

109112

"""

110113

agent = 'figtree'

111-

request_rate = namedtuple('req_rate', 'requests seconds')(9, 30)

114+

request_rate = urllib.robotparser.RequestRate(9, 30)

112115

crawl_delay = 3

113116

good = [('figtree', '/foo.html')]

114117

bad = ['/tmp', '/tmp.html', '/tmp/a.html', '/a%3cd.html', '/a%3Cd.html',

@@ -237,7 +240,7 @@ class DefaultEntryTest(BaseRequestRateTest, unittest.TestCase):

237240

Request-rate: 3/15

238241

Disallow: /cyberworld/map/

239242

"""

240-

request_rate = namedtuple('req_rate', 'requests seconds')(3, 15)

243+

request_rate = urllib.robotparser.RequestRate(3, 15)

241244

crawl_delay = 1

242245

good = ['/', '/test.html']

243246

bad = ['/cyberworld/map/index.html']