20
20
21
21
from .spiders import MetaSpider
22
22
23
-
24
23
class TestCrawlManager (unittest .TestCase ):
25
24
26
25
def setUp (self ):
@@ -90,7 +89,7 @@ def setUp(self):
90
89
# test callback
91
90
self .spider .parse_something = lambda : None
92
91
self .crawl_manager .callback_name = 'parse_something'
93
- self .request = self .crawl_manager .request
92
+ self .request = self .crawl_manager .requests [ 0 ]
94
93
95
94
def _call_spider_idle (self ):
96
95
try :
@@ -99,13 +98,13 @@ def _call_spider_idle(self):
99
98
pass
100
99
101
100
def test_spider_opened (self ):
102
- self .assertIsNone (self .crawl_manager .request .callback )
101
+ self .assertIsNone (self .crawl_manager .requests [ 0 ] .callback )
103
102
self ._call_spider_idle ()
104
103
self .crawler .engine .crawl .assert_called_once_with (
105
- self .crawl_manager .request , self .spider )
106
- self .assertNotEqual (self .request , self .crawl_manager .request )
104
+ self .crawl_manager .requests [ 0 ] , self .spider )
105
+ self .assertNotEqual (self .request , self .crawl_manager .requests [ 0 ] )
107
106
self .assertEquals (
108
- self .crawl_manager .request .callback , self .spider .parse_something )
107
+ self .crawl_manager .requests [ 0 ] .callback , self .spider .parse_something )
109
108
110
109
def test_raise_error_if_not_callable (self ):
111
110
self .spider .parse_something = None
@@ -114,8 +113,9 @@ def test_raise_error_if_not_callable(self):
114
113
self .assertFalse (self .crawler .engine .crawl .called )
115
114
116
115
def test_modify_realtime_request (self ):
117
- self .assertDictEqual (self .crawl_manager .request .meta , {})
118
- self .assertEqual (self .crawl_manager .request .method , 'GET' )
116
+ for request in self .crawl_manager .requests :
117
+ self .assertDictEqual (request .meta , {})
118
+ self .assertEqual (request .method , 'GET' )
119
119
120
120
def modify_realtime_request (request ):
121
121
request = request .replace (method = 'POST' )
@@ -125,16 +125,16 @@ def modify_realtime_request(request):
125
125
self .spider .modify_realtime_request = modify_realtime_request
126
126
self ._call_spider_idle ()
127
127
self .crawler .engine .crawl .assert_called_once_with (
128
- self .crawl_manager .request , self .spider )
129
- self .assertEqual (self .crawl_manager .request .method , 'POST' )
130
- self .assertEqual (self .crawl_manager .request .meta ['foo' ], 'bar' )
128
+ self .crawl_manager .requests [ 0 ] , self .spider )
129
+ self .assertEqual (self .crawl_manager .requests [ 0 ] .method , 'POST' )
130
+ self .assertEqual (self .crawl_manager .requests [ 0 ] .meta ['foo' ], 'bar' )
131
131
132
132
def test_modify_realtime_request_is_not_callable (self ):
133
133
self .spider .modify_realtime_request = None
134
134
self ._call_spider_idle ()
135
135
self .crawler .engine .crawl .assert_called_once_with (
136
- self .crawl_manager .request , self .spider )
137
- self .assertNotEqual (self .request , self .crawl_manager .request )
136
+ self .crawl_manager .requests [ 0 ] , self .spider )
137
+ self .assertNotEqual (self .request , self .crawl_manager .requests [ 0 ] )
138
138
139
139
140
140
class TestHandleScheduling (TestCrawlManager ):
@@ -146,13 +146,13 @@ def setUp(self):
146
146
147
147
def test_handle_scheduling (self ):
148
148
self .crawl_manager .handle_scheduling (
149
- self .crawl_manager .request , self .spider )
149
+ self .crawl_manager .requests [ 0 ] , self .spider )
150
150
self .crawl_manager .limit_requests .assert_called_once_with (self .spider )
151
151
self .crawl_manager .limit_runtime .assert_called_once_with (self .spider )
152
152
153
153
def test_handle_scheduling_another_spider (self ):
154
154
self .crawl_manager .handle_scheduling (
155
- self .crawl_manager .request , self .another_spider )
155
+ self .crawl_manager .requests [ 0 ] , self .another_spider )
156
156
self .assertFalse (self .crawl_manager .limit_requests .called )
157
157
self .assertFalse (self .crawl_manager .limit_runtime .called )
158
158
@@ -321,24 +321,24 @@ def test_return_items_without_debug(self):
321
321
class TestCreateSpiderRequest (TestCrawlManager ):
322
322
323
323
def test_valid_arguments (self ):
324
- req = self .crawl_manager .create_spider_request (self .kwargs )
324
+ req = self .crawl_manager .create_spider_request (self .kwargs , self . kwargs . pop ( 'url' ) )
325
325
self .assertTrue (req .dont_filter )
326
326
self .assertEqual (req .url , self .url )
327
327
328
328
def test_invalid_arguments (self ):
329
329
self .kwargs ['url1' ] = 'http://localhost/foo'
330
330
exception = self .assertRaises (
331
- Error , self .crawl_manager .create_spider_request , self .kwargs )
331
+ Error , self .crawl_manager .create_spider_request , self .kwargs , self . kwargs . pop ( 'url1' ) )
332
332
self .assertEqual (exception .status , '400' )
333
333
334
334
def test_invalid_url (self ):
335
335
self .kwargs ['url' ] = '//localhost/foo'
336
336
exception = self .assertRaises (
337
- Error , self .crawl_manager .create_spider_request , self .kwargs )
337
+ Error , self .crawl_manager .create_spider_request , self .kwargs , self . kwargs . pop ( 'url' ) )
338
338
self .assertEqual (exception .status , '400' )
339
339
self .kwargs ['url' ] = 'localhost/foo'
340
340
exception = self .assertRaises (
341
- Error , self .crawl_manager .create_spider_request , self .kwargs )
341
+ Error , self .crawl_manager .create_spider_request , self .kwargs , self . kwargs . pop ( 'url' ) )
342
342
self .assertEqual (exception .status , '400' )
343
343
344
344
0 commit comments