mirror of https://github.com/scrapy/scrapy.git
25 lines
672 B
Python
25 lines
672 B
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
from subprocess import PIPE, Popen
|
|
|
|
|
|
def _execute(spname: str) -> int:
|
|
args = (sys.executable, "-m", "scrapy.cmdline", "crawl", spname)
|
|
cwd = Path(__file__).resolve().parent
|
|
proc = Popen(args, stdout=PIPE, stderr=PIPE, cwd=cwd)
|
|
proc.communicate()
|
|
return proc.returncode
|
|
|
|
|
|
def test_open_spider_normally_in_pipeline():
|
|
returncode = _execute("normal")
|
|
assert returncode == 0
|
|
|
|
|
|
def test_exception_at_open_spider_in_pipeline():
|
|
returncode = _execute("exception")
|
|
# An exception in pipeline's open_spider should result in a non-zero exit code
|
|
assert returncode == 1
|