Exemple #1
0
 def schedule(self, spider, args=None, settings=None, target='default'):
     try:
         conf = self.config.get_target_conf(target)
         schedule_spider(
             conf.project_id, conf.endpoint, conf.apikey, spider,
             arguments=args or (), settings=settings or ())
     except self.EXCEPTIONS as e:
         raise JsonApiGeneralException(
             e.format_message(),
             self.STATUS_CODES.get(getattr(e, 'exit_code', None), 500),
         )
Exemple #2
0
 def test_schedule_spider_calls_project_schedule(self, mock_conn):
     mock_proj = mock_conn.return_value.__getitem__.return_value
     schedule.schedule_spider(1, 'https://endpoint/api/scrapyd',
                              'FAKE_API_KEY', 'fake_spider')
     self.assertTrue(mock_proj.schedule.called)
Exemple #3
0
 def test_schedule_invalid_spider(self, mock_conn):
     mock_proj = mock_conn.return_value.__getitem__.return_value
     mock_proj.schedule.side_effect = APIError('')
     with self.assertRaises(RemoteErrorException):
         schedule.schedule_spider(1, 'https://endpoint/api/scrapyd',
                                  'FAKE_API_KEY', 'fake_spider')
Exemple #4
0
 def test_schedule_spider_calls_project_schedule(self, mock_conn):
     mock_proj = mock_conn.return_value.__getitem__.return_value
     schedule.schedule_spider(1, 'https://endpoint/api/', 'FAKE_API_KEY',
                              'fake_spider')
     self.assertTrue(mock_proj.schedule.called)
Exemple #5
0
 def test_schedule_invalid_spider(self, mock_conn):
     mock_proj = mock_conn.return_value.__getitem__.return_value
     mock_proj.schedule.side_effect = APIError('')
     with self.assertRaises(RemoteErrorException):
         schedule.schedule_spider(1, 'https://endpoint/api/',
                                  'FAKE_API_KEY', 'fake_spider')
Exemple #6
0
 def test_schedule_spider_calls_project_jobs_run(self, mock_client):
     mock_proj = mock_client.return_value.get_project.return_value
     schedule.schedule_spider(1, 'https://endpoint/api/', 'FAKE_API_KEY',
                              'fake_spider')
     self.assertTrue(mock_proj.jobs.run)
Exemple #7
0
 def test_schedule_invalid_spider(self, mock_client):
     mock_proj = mock_client.return_value.get_project.return_value
     mock_proj.jobs.run.side_effect = ScrapinghubAPIError('')
     with self.assertRaises(RemoteErrorException):
         schedule.schedule_spider(1, 'https://endpoint/api/',
                                  'FAKE_API_KEY', 'fake_spider')
Exemple #8
0
 def test_schedule_spider_calls_project_jobs_run(self, mock_client):
     mock_proj = mock_client.return_value.get_project.return_value
     schedule.schedule_spider(1, 'https://endpoint/api/',
                              'FAKE_API_KEY', 'fake_spider')
     self.assertTrue(mock_proj.jobs.run)
Exemple #9
0
 def test_schedule_invalid_spider(self, mock_client):
     mock_proj = mock_client.return_value.get_project.return_value
     mock_proj.jobs.run.side_effect = ScrapinghubAPIError('')
     with self.assertRaises(RemoteErrorException):
         schedule.schedule_spider(1, 'https://endpoint/api/',
                                  'FAKE_API_KEY', 'fake_spider')