Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_robotparser.py @ 73798:6cde416ef03b
Credit Per Øyvind Karlsen for the initial implementation of the lzma module (issue #6715).
| author | Nadeem Vawda <nadeem.vawda@gmail.com> |
|---|---|
| date | Thu, 01 Dec 2011 01:18:27 +0200 |
| parents | 6e72490bbff6 |
| children | fa051c6276a0 |
| rev | line source |
|---|---|
|
42501
f6069f9dd52d
SF patch# 1770008 by Christian Heimes (plus some extras).
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
1 import io |
|
48334
5a416a6417d3
Make a new urllib package .
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
47201
diff
changeset
|
2 import unittest |
|
5a416a6417d3
Make a new urllib package .
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
47201
diff
changeset
|
3 import urllib.robotparser |
|
71261
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
4 from urllib.error import URLError, HTTPError |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
5 from urllib.request import urlopen |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
43095
diff
changeset
|
6 from test import support |
| 22088 | 7 |
| 8 class RobotTestCase(unittest.TestCase): | |
| 9 def __init__(self, index, parser, url, good, agent): | |
| 10 unittest.TestCase.__init__(self) | |
| 11 if good: | |
| 12 self.str = "RobotTest(%d, good, %s)" % (index, url) | |
| 13 else: | |
| 14 self.str = "RobotTest(%d, bad, %s)" % (index, url) | |
| 15 self.parser = parser | |
| 16 self.url = url | |
| 17 self.good = good | |
| 18 self.agent = agent | |
| 19 | |
| 20 def runTest(self): | |
| 21 if isinstance(self.url, tuple): | |
| 22 agent, url = self.url | |
| 23 else: | |
| 24 url = self.url | |
| 25 agent = self.agent | |
| 26 if self.good: | |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48594
diff
changeset
|
27 self.assertTrue(self.parser.can_fetch(agent, url)) |
| 22088 | 28 else: |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48594
diff
changeset
|
29 self.assertFalse(self.parser.can_fetch(agent, url)) |
| 22088 | 30 |
| 31 def __str__(self): | |
| 32 return self.str | |
| 33 | |
| 34 tests = unittest.TestSuite() | |
| 35 | |
| 36 def RobotTest(index, robots_txt, good_urls, bad_urls, | |
| 37 agent="test_robotparser"): | |
|
23075
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
38 |
|
42501
f6069f9dd52d
SF patch# 1770008 by Christian Heimes (plus some extras).
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
39 lines = io.StringIO(robots_txt).readlines() |
|
48334
5a416a6417d3
Make a new urllib package .
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
47201
diff
changeset
|
40 parser = urllib.robotparser.RobotFileParser() |
|
23075
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
41 parser.parse(lines) |
|
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
42 for url in good_urls: |
|
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
43 tests.addTest(RobotTestCase(index, parser, url, 1, agent)) |
|
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
44 for url in bad_urls: |
|
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
45 tests.addTest(RobotTestCase(index, parser, url, 0, agent)) |
| 22088 | 46 |
| 47 # Examples from http://www.robotstxt.org/wc/norobots.html (fetched 2002) | |
| 48 | |
| 49 # 1. | |
| 50 doc = """ | |
| 51 User-agent: * | |
| 52 Disallow: /cyberworld/map/ # This is an infinite virtual URL space | |
| 53 Disallow: /tmp/ # these will soon disappear | |
| 54 Disallow: /foo.html | |
| 55 """ | |
| 56 | |
| 57 good = ['/','/test.html'] | |
| 58 bad = ['/cyberworld/map/index.html','/tmp/xxx','/foo.html'] | |
| 59 | |
| 60 RobotTest(1, doc, good, bad) | |
| 61 | |
| 62 # 2. | |
| 63 doc = """ | |
| 64 # robots.txt for http://www.example.com/ | |
| 65 | |
| 66 User-agent: * | |
| 67 Disallow: /cyberworld/map/ # This is an infinite virtual URL space | |
| 68 | |
| 69 # Cybermapper knows where to go. | |
| 70 User-agent: cybermapper | |
| 71 Disallow: | |
| 72 | |
| 73 """ | |
| 74 | |
| 75 good = ['/','/test.html',('cybermapper','/cyberworld/map/index.html')] | |
| 76 bad = ['/cyberworld/map/index.html'] | |
| 77 | |
| 78 RobotTest(2, doc, good, bad) | |
| 79 | |
| 80 # 3. | |
| 81 doc = """ | |
| 82 # go away | |
| 83 User-agent: * | |
| 84 Disallow: / | |
| 85 """ | |
| 86 | |
| 87 good = [] | |
| 88 bad = ['/cyberworld/map/index.html','/','/tmp/'] | |
| 89 | |
| 90 RobotTest(3, doc, good, bad) | |
| 91 | |
| 92 # Examples from http://www.robotstxt.org/wc/norobots-rfc.html (fetched 2002) | |
| 93 | |
| 94 # 4. | |
| 95 doc = """ | |
| 96 User-agent: figtree | |
| 97 Disallow: /tmp | |
| 98 Disallow: /a%3cd.html | |
| 99 Disallow: /a%2fb.html | |
| 100 Disallow: /%7ejoe/index.html | |
| 101 """ | |
| 102 | |
| 103 good = [] # XFAIL '/a/b.html' | |
| 104 bad = ['/tmp','/tmp.html','/tmp/a.html', | |
| 105 '/a%3cd.html','/a%3Cd.html','/a%2fb.html', | |
| 106 '/~joe/index.html' | |
| 107 ] | |
| 108 | |
| 109 RobotTest(4, doc, good, bad, 'figtree') | |
| 110 RobotTest(5, doc, good, bad, 'FigTree Robot libwww-perl/5.04') | |
| 111 | |
| 112 # 6. | |
| 113 doc = """ | |
| 114 User-agent: * | |
| 115 Disallow: /tmp/ | |
| 116 Disallow: /a%3Cd.html | |
| 117 Disallow: /a/b.html | |
| 118 Disallow: /%7ejoe/index.html | |
| 119 """ | |
| 120 | |
| 121 good = ['/tmp',] # XFAIL: '/a%2fb.html' | |
| 122 bad = ['/tmp/','/tmp/a.html', | |
| 123 '/a%3cd.html','/a%3Cd.html',"/a/b.html", | |
|
23075
b7e87732f6ab
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
22088
diff
changeset
|
124 '/%7Ejoe/index.html'] |
| 22088 | 125 |
| 126 RobotTest(6, doc, good, bad) | |
| 127 | |
| 128 # From bug report #523041 | |
| 129 | |
| 130 # 7. | |
| 131 doc = """ | |
| 132 User-Agent: * | |
| 133 Disallow: /. | |
| 134 """ | |
| 135 | |
| 136 good = ['/foo.html'] | |
| 137 bad = [] # Bug report says "/" should be denied, but that is not in the RFC | |
| 138 | |
| 139 RobotTest(7, doc, good, bad) | |
| 140 | |
|
48594
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
141 # From Google: http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=40364 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
142 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
143 # 8. |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
144 doc = """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
145 User-agent: Googlebot |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
146 Allow: /folder1/myfile.html |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
147 Disallow: /folder1/ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
148 """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
149 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
150 good = ['/folder1/myfile.html'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
151 bad = ['/folder1/anotherfile.html'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
152 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
153 RobotTest(8, doc, good, bad, agent="Googlebot") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
154 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
155 # 9. This file is incorrect because "Googlebot" is a substring of |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
156 # "Googlebot-Mobile", so test 10 works just like test 9. |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
157 doc = """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
158 User-agent: Googlebot |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
159 Disallow: / |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
160 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
161 User-agent: Googlebot-Mobile |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
162 Allow: / |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
163 """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
164 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
165 good = [] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
166 bad = ['/something.jpg'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
167 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
168 RobotTest(9, doc, good, bad, agent="Googlebot") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
169 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
170 good = [] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
171 bad = ['/something.jpg'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
172 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
173 RobotTest(10, doc, good, bad, agent="Googlebot-Mobile") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
174 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
175 # 11. Get the order correct. |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
176 doc = """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
177 User-agent: Googlebot-Mobile |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
178 Allow: / |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
179 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
180 User-agent: Googlebot |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
181 Disallow: / |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
182 """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
183 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
184 good = [] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
185 bad = ['/something.jpg'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
186 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
187 RobotTest(11, doc, good, bad, agent="Googlebot") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
188 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
189 good = ['/something.jpg'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
190 bad = [] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
191 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
192 RobotTest(12, doc, good, bad, agent="Googlebot-Mobile") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
193 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
194 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
195 # 13. Google also got the order wrong in #8. You need to specify the |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
196 # URLs from more specific to more general. |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
197 doc = """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
198 User-agent: Googlebot |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
199 Allow: /folder1/myfile.html |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
200 Disallow: /folder1/ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
201 """ |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
202 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
203 good = ['/folder1/myfile.html'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
204 bad = ['/folder1/anotherfile.html'] |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
205 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
206 RobotTest(13, doc, good, bad, agent="googlebot") |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
207 |
|
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
208 |
|
63271
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
209 # 14. For issue #6325 (query string support) |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
210 doc = """ |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
211 User-agent: * |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
212 Disallow: /some/path?name=value |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
213 """ |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
214 |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
215 good = ['/some/path'] |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
216 bad = ['/some/path?name=value'] |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
217 |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
218 RobotTest(14, doc, good, bad) |
|
3119c4d7276b
Merged revisions 83209 via svnmerge from
Senthil Kumaran <orsenthil@gmail.com>
parents:
60202
diff
changeset
|
219 |
|
63464
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
220 # 15. For issue #4108 (obey first * entry) |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
221 doc = """ |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
222 User-agent: * |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
223 Disallow: /some/path |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
224 |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
225 User-agent: * |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
226 Disallow: /another/path |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
227 """ |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
228 |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
229 good = ['/another/path'] |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
230 bad = ['/some/path'] |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
231 |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
232 RobotTest(15, doc, good, bad) |
|
415ea2c3cfe8
Merged revisions 83238 via svnmerge from
Georg Brandl <georg@python.org>
parents:
63271
diff
changeset
|
233 |
|
48594
35b1a20470db
Merged revisions 65209-65216,65225-65226,65233,65239,65246-65247,65255-65256 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
48563
diff
changeset
|
234 |
|
48535
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
235 class NetworkTestCase(unittest.TestCase): |
|
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
236 |
|
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
237 def testPasswordProtectedSite(self): |
|
60202
5496503b8b1a
Merged revision 79605 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
55593
diff
changeset
|
238 support.requires('network') |
|
64536
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
239 with support.transient_internet('mueblesmoraleda.com'): |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
240 url = 'http://mueblesmoraleda.com' |
|
71261
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
241 robots_url = url + "/robots.txt" |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
242 # First check the URL is usable for our purposes, since the |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
243 # test site is a bit flaky. |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
244 try: |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
245 urlopen(robots_url) |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
246 except HTTPError as e: |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
247 if e.code not in {401, 403}: |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
248 self.skipTest( |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
249 "%r should return a 401 or 403 HTTP error, not %r" |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
250 % (robots_url, e.code)) |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
251 else: |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
252 self.skipTest( |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
253 "%r should return a 401 or 403 HTTP error, not succeed" |
|
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
254 % (robots_url)) |
|
64536
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
255 parser = urllib.robotparser.RobotFileParser() |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
256 parser.set_url(url) |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
257 try: |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
258 parser.read() |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
259 except URLError: |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
260 self.skipTest('%s is unavailable' % url) |
|
71261
6e72490bbff6
Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
Antoine Pitrou <solipsis@pitrou.net>
parents:
68257
diff
changeset
|
261 self.assertEqual(parser.can_fetch("*", robots_url), False) |
|
43095
4a07a288f5c4
Merged revisions 57620-57771 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
42501
diff
changeset
|
262 |
|
48535
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
263 def testPythonOrg(self): |
|
60202
5496503b8b1a
Merged revision 79605 via svnmerge from
Florent Xicluna <florent.xicluna@gmail.com>
parents:
55593
diff
changeset
|
264 support.requires('network') |
|
64536
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
265 with support.transient_internet('www.python.org'): |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
266 parser = urllib.robotparser.RobotFileParser( |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
267 "http://www.python.org/robots.txt") |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
268 parser.read() |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
269 self.assertTrue( |
|
2400f55ea312
Merged revisions 84597-84599 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents:
63464
diff
changeset
|
270 parser.can_fetch("*", "http://www.python.org/robots.txt")) |
|
48535
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
271 |
| 22088 | 272 def test_main(): |
|
48535
dece17edbed0
Bug 3347: robotparser failed because it didn't convert bytes to string.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
48334
diff
changeset
|
273 support.run_unittest(NetworkTestCase) |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
43095
diff
changeset
|
274 support.run_unittest(tests) |
| 22088 | 275 |
| 276 if __name__=='__main__': | |
|
48563
b51cd5d3795c
Merged revisions 65012,65035,65037-65040,65048,65057,65077,65091-65095,65097-65099,65127-65128,65131,65133-65136,65139,65149-65151,65155,65158-65159,65176-65178,65183-65184,65187-65190,65192,65194 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48535
diff
changeset
|
277 support.verbose = 1 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
24364
diff
changeset
|
278 test_main() |
