2010-09-14 01:44:10 -03:00
|
|
|
import os
|
|
|
|
|
|
|
|
from twisted.trial import unittest
|
|
|
|
|
|
|
|
from zope.interface.verify import verifyObject
|
|
|
|
|
|
|
|
from scrapyd.interfaces import IEnvironment
|
|
|
|
from scrapyd.config import Config
|
|
|
|
from scrapyd.environ import Environment
|
|
|
|
|
2010-12-27 16:22:32 -02:00
|
|
|
class EnvironmentTest(unittest.TestCase):
|
2010-09-14 01:44:10 -03:00
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
d = self.mktemp()
|
|
|
|
os.mkdir(d)
|
|
|
|
config = Config(values={'eggs_dir': d, 'logs_dir': d})
|
2010-09-14 01:44:25 -03:00
|
|
|
config.cp.add_section('settings')
|
|
|
|
config.cp.set('settings', 'newbot', 'newbot.settings')
|
2010-10-27 06:49:15 -02:00
|
|
|
self.environ = Environment(config, initenv={})
|
2010-09-14 01:44:10 -03:00
|
|
|
|
|
|
|
def test_interface(self):
|
|
|
|
verifyObject(IEnvironment, self.environ)
|
|
|
|
|
2010-09-14 01:44:25 -03:00
|
|
|
def test_get_environment_with_eggfile(self):
|
2010-11-30 13:03:20 -02:00
|
|
|
msg = {'_project': 'mybot', '_spider': 'myspider', '_job': 'ID'}
|
2010-09-14 01:44:10 -03:00
|
|
|
slot = 3
|
2010-12-27 16:22:32 -02:00
|
|
|
env = self.environ.get_environment(msg, slot)
|
2010-09-14 01:44:10 -03:00
|
|
|
self.assertEqual(env['SCRAPY_PROJECT'], 'mybot')
|
2010-12-24 12:47:59 -02:00
|
|
|
self.assertEqual(env['SCRAPY_SLOT'], '3')
|
2010-12-26 19:32:56 -02:00
|
|
|
self.assertEqual(env['SCRAPY_SPIDER'], 'myspider')
|
|
|
|
self.assertEqual(env['SCRAPY_JOB'], 'ID')
|
2011-06-12 02:55:21 -03:00
|
|
|
self.assert_(env['SCRAPY_LOG_FILE'].endswith(os.path.join('mybot', 'myspider', 'ID.log')))
|
2012-01-03 22:56:26 -02:00
|
|
|
self.assert_(env['SCRAPY_FEED_URI'].endswith(os.path.join('mybot', 'myspider', 'ID.jl')))
|
2010-09-14 01:44:25 -03:00
|
|
|
self.failIf('SCRAPY_SETTINGS_MODULE' in env)
|
2012-05-08 17:43:00 -03:00
|
|
|
|
|
|
|
def test_get_environment_with_no_items_dir(self):
|
|
|
|
config = Config(values={'items_dir': '', 'logs_dir': ''})
|
|
|
|
config.cp.add_section('settings')
|
|
|
|
config.cp.set('settings', 'newbot', 'newbot.settings')
|
|
|
|
msg = {'_project': 'mybot', '_spider': 'myspider', '_job': 'ID'}
|
|
|
|
slot = 3
|
|
|
|
environ = Environment(config, initenv={})
|
|
|
|
env = environ.get_environment(msg, slot)
|
|
|
|
self.failUnless('SCRAPY_FEED_URI' not in env)
|
|
|
|
self.failUnless('SCRAPY_LOG_FILE' not in env)
|