def get_engine(custom_settings=None, **kwargs): '''Return the engine initialized with the custom settings. ''' custom_settings = custom_settings or {} custom_settings.update(kwargs) settings = EngineSettings(custom_settings=custom_settings) engine = Engine(settings, Project(path=None), clock=Clock()) engine.set_spider(BaseSpider('dummy')) engine.stop_if_idle = False # it is common to use stats and signals in unittests, without full # initialization of the engine engine.stats = MemoryStats(engine) engine.signals = SignalManager(engine) return engine