# -*- coding: utf-8 -*- import sys from os.path import abspath, dirname, join from time import strftime from traceback import format_exc from collections import defaultdict sys.path.append(abspath(join(dirname(__file__), "..", "..", "pyload", "lib"))) sys.path.append(abspath(join(dirname(__file__), "..", ".."))) import __builtin__ from pyload.Api import Role from pyload.datatypes.User import User from pyload.datatypes.PyPackage import PyPackage from pyload.threads.BaseThread import BaseThread from pyload.config.ConfigParser import ConfigParser from pyload.network.RequestFactory import RequestFactory from pyload.PluginManager import PluginManager from pyload.utils.JsEngine import JsEngine from logging import log, DEBUG, INFO, WARN, ERROR # Do nothing def noop(*args, **kwargs): pass ConfigParser.save = noop class LogStub: def debug(self, *args): log(DEBUG, *args) def info(self, *args): log(INFO, *args) def error(self, *args): log(ERROR, *args) def warning(self, *args): log(WARN, *args) class NoLog: def debug(self, *args): pass def info(self, *args): pass def error(self, *args): log(ERROR, *args) def warning(self, *args): log(WARN, *args) class Core: def __init__(self): self.log = NoLog() self.api = self.core = self self.threadManager = self self.debug = True self.captcha = True self.config = ConfigParser() self.pluginManager = PluginManager(self) self.requestFactory = RequestFactory(self) __builtin__.pyreq = self.requestFactory self.accountManager = AccountManager() self.addonManager = AddonManager() self.eventManager = self.evm = NoopClass() self.interactionManager = self.im = NoopClass() self.scheduler = NoopClass() self.js = JsEngine() self.cache = {} self.packageCache = {} self.statusMsg = defaultdict(lambda: "statusmsg") self.log = LogStub() def getServerVersion(self): return "TEST_RUNNER on %s" % strftime("%d %h %Y") def path(self, path): return path def updateFile(self, *args): pass def updatePackage(self, *args): pass def processingIds(self, *args): return [] def getPackage(self, *args): return PyPackage(self, 0, "tmp", "tmp", -1, 0, "", "", "", 0, "", 0, 0, 0) def print_exc(self): log(ERROR, format_exc()) class NoopClass: def __getattr__(self, item): return noop class AddonManager(NoopClass): def activePlugins(self): return [] class AccountManager: def getAccountForPlugin(self, name): return None class Thread(BaseThread): def __init__(self, core): BaseThread.__init__(self, core) self.plugin = None def writeDebugReport(self): if hasattr(self, "pyfile"): dump = BaseThread.writeDebugReport(self, self.plugin.__name__, pyfile=self.pyfile) else: dump = BaseThread.writeDebugReport(self, self.plugin.__name__, plugin=self.plugin) return dump __builtin__._ = lambda x: x __builtin__.pypath = abspath(join(dirname(__file__), "..", "..")) __builtin__.addonManager = AddonManager() __builtin__.pyreq = None adminUser = User(None, uid=0, role=Role.Admin) normalUser = User(None, uid=1, role=Role.User)