From 14e7121674f06aed521e671eacd1325613d6464d Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Mon, 6 May 2013 17:27:59 -0300 Subject: [PATCH] make sure the mockserver forked from tests uses the current installation of scrapy, not the system one --- scrapy/tests/test_crawl.py | 5 +++-- scrapy/utils/test.py | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scrapy/tests/test_crawl.py b/scrapy/tests/test_crawl.py index cc27903ee..8125ae17e 100644 --- a/scrapy/tests/test_crawl.py +++ b/scrapy/tests/test_crawl.py @@ -5,7 +5,7 @@ from subprocess import Popen, PIPE from scrapy.spider import BaseSpider from scrapy.http import Request from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor -from scrapy.utils.test import get_crawler +from scrapy.utils.test import get_crawler, get_testenv class FollowAllSpider(BaseSpider): @@ -52,7 +52,8 @@ def docrawl(spider, settings=None): class CrawlTestCase(TestCase): def setUp(self): - self.proc = Popen([sys.executable, '-u', '-m', 'scrapy.tests.mockserver'], stdout=PIPE) + self.proc = Popen([sys.executable, '-u', '-m', 'scrapy.tests.mockserver'], + stdout=PIPE, env=get_testenv()) self.proc.stdout.readline() def tearDown(self): diff --git a/scrapy/utils/test.py b/scrapy/utils/test.py index 2def768fe..66e045919 100644 --- a/scrapy/utils/test.py +++ b/scrapy/utils/test.py @@ -67,6 +67,14 @@ def get_pythonpath(): scrapy_path = __import__('scrapy').__path__[0] return os.path.dirname(scrapy_path) + sep + os.environ.get('PYTHONPATH', '') +def get_testenv(): + """Return a OS environment dict suitable to fork processes that need to import + this installation of Scrapy, instead of a system installed one. + """ + env = os.environ.copy() + env['PYTHONPATH'] = get_pythonpath() + return env + def assert_samelines(testcase, text1, text2, msg=None): """Asserts text1 and text2 have the same lines, ignoring differences in line endings between platforms