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

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

`

3

3

`import threading

`

4

4

`import unittest

`

5

5

`import urllib.robotparser

`

6

``

`-

from collections import namedtuple

`

7

6

`from test import support

`

8

7

`from http.server import BaseHTTPRequestHandler, HTTPServer

`

9

8

``

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

`

87

86

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

`

88

87

` )

`

89

88

`if self.request_rate:

`

``

89

`+

self.assertIsInstance(

`

``

90

`+

self.parser.request_rate(agent),

`

``

91

`+

urllib.robotparser.RequestRate

`

``

92

`+

)

`

90

93

`self.assertEqual(

`

91

94

`self.parser.request_rate(agent).requests,

`

92

95

`self.request_rate.requests

`

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

`

108

111

`Disallow: /%7ejoe/index.html

`

109

112

` """

`

110

113

`agent = 'figtree'

`

111

``

`-

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

`

``

114

`+

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

`

112

115

`crawl_delay = 3

`

113

116

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

`

114

117

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

`

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

`

237

240

`Request-rate: 3/15

`

238

241

`Disallow: /cyberworld/map/

`

239

242

` """

`

240

``

`-

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

`

``

243

`+

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

`

241

244

`crawl_delay = 1

`

242

245

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

`

243

246

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

`