Example #1
0
class Env(object):

    _appname = 'CouchPotato'

    ''' Environment variables '''
    _app = None
    _encoding = 'UTF-8'
    _debug = False
    _dev = False
    _settings = Settings()
    _loader = Loader()
    _cache = None
    _options = None
    _args = None
    _quiet = False
    _daemonized = False
    _desktop = None
    _session = None

    ''' Data paths and directories '''
    _app_dir = ""
    _data_dir = ""
    _cache_dir = ""
    _db_path = ""
    _log_path = ""

    @staticmethod
    def doDebug():
        return Env._debug

    @staticmethod
    def get(attr):
        return getattr(Env, '_' + attr)

    @staticmethod
    def all():
        ret = ''
        for attr in ['encoding', 'debug', 'args', 'app_dir', 'data_dir', 'desktop', 'options']:
            ret += '%s=%s ' % (attr, Env.get(attr))

        return ret

    @staticmethod
    def set(attr, value):
        return setattr(Env, '_' + attr, value)

    @staticmethod
    def getSession(engine = None):
        existing_session = Env.get('session')
        if existing_session:
            return existing_session

        engine = Env.getEngine()
        session = scoped_session(sessionmaker(bind = engine))
        Env.set('session', session)

        return session

    @staticmethod
    def getEngine():
        return create_engine(Env.get('db_path'), echo = False, pool_recycle = 30)

    @staticmethod
    def setting(attr, section = 'core', value = None, default = '', type = None):

        s = Env.get('settings')

        # Return setting
        if value is None:
            return s.get(attr, default = default, section = section, type = type)

        # Set setting
        s.set(section, attr, value)
        s.save()

        return s

    @staticmethod
    def prop(identifier, value = None, default = None):
        s = Env.get('settings')
        if value is None:
            v = s.getProperty(identifier)
            return v if v else default

        s.setProperty(identifier, value)

    @staticmethod
    def getPermission(setting_type):
        perm = Env.get('settings').get('permission_%s' % setting_type, default = '0777')
        if perm[0] == '0':
            return int(perm, 8)
        else:
            return int(perm)

    @staticmethod
    def fireEvent(*args, **kwargs):
        return fireEvent(*args, **kwargs)

    @staticmethod
    def addEvent(*args, **kwargs):
        return addEvent(*args, **kwargs)

    @staticmethod
    def getPid():
        try:
            try:
                parent = os.getppid()
            except:
                parent = None
            return '%d %s' % (os.getpid(), '(%d)' % parent if parent and parent > 1 else '')
        except:
            return 0

    @staticmethod
    def getIdentifier():
        return '%s %s' % (Env.get('appname'), fireEvent('app.version', single = True))
Example #2
0
 def setUp(self):
     self.s = Settings()
Example #3
0
    def get(self, key):
        pass


plug = QualityPlugin()
qualities = plug.qualities

handler = logging.StreamHandler()
log = CPLog(__name__)
log.logger.setLevel('DEBUG')
log.logger.addHandler(handler)

Env.set('cache', NoCache())
Env.set('http_opener', requests.Session())
Env.set('loader', Loader())
Env.set('settings', Settings())


class TestPotatoYGG:
    def setUp(self, conf='/test.cfg'):
        Env.get('settings').setFile(base_path + conf)
        loader = Env.get('loader')
        module = loader.loadModule('ygg')
        assert module is not None
        assert loader.loadSettings(module, 'ygg', save=False)
        return module.autoload()

    def test_loginKO(self):
        ygg = self.setUp('/wrong.cfg')
        assert not ygg.login()
Example #4
0
    def setUp(self):
        self.s = Settings()
        self.meta = self.s.optionMetaSuffix()

        # hide real config-parser:
        self.s.p = Mock()
Example #5
0
class Env(object):

    _appname = 'CouchPotato'
    ''' Environment variables '''
    _app = None
    _encoding = 'UTF-8'
    _debug = False
    _dev = False
    _settings = Settings()
    _database = Database()
    _loader = Loader()
    _softchroot = SoftChroot()
    _cache = None
    _options = None
    _args = None
    _quiet = False
    _daemonized = False
    _desktop = None
    _http_opener = None
    ''' Data paths and directories '''
    _app_dir = ""
    _data_dir = ""
    _cache_dir = ""
    _db = ""
    _log_path = ""

    @staticmethod
    def doDebug():
        return Env._debug

    @staticmethod
    def get(attr, str=False):
        if str:
            return to_unicode(getattr(Env, '_' + attr))
        else:
            return getattr(Env, '_' + attr)

    @staticmethod
    def all():
        ret = ''
        for attr in [
                'encoding', 'debug', 'args', 'app_dir', 'data_dir', 'desktop',
                'options'
        ]:
            ret += '%s=%s ' % (attr, Env.get(attr))

        return ret

    @staticmethod
    def set(attr, value):
        return setattr(Env, '_' + attr, value)

    @staticmethod
    def setting(attr, section='core', value=None, default='', type=None):

        s = Env.get('settings')

        # Return setting
        if value is None:
            return s.get(attr, default=default, section=section, type=type)

        # Set setting
        s.add_section(section)
        s.set(section, attr, value)
        s.save()

        return s

    @staticmethod
    def prop(identifier, value=None, default=None):
        s = Env.get('settings')
        if value is None:
            v = s.get_property(identifier)
            return v if v else default

        s.set_property(identifier, value)

    @staticmethod
    def getPermission(setting_type):
        perm = Env.get('settings').get('permission_%s' % setting_type,
                                       default='0777')
        if perm[0] == '0':
            return int(perm, 8)
        else:
            return int(perm)

    @staticmethod
    def fireEvent(*args, **kwargs):
        return fire_event(*args, **kwargs)

    @staticmethod
    def addEvent(*args, **kwargs):
        return add_event(*args, **kwargs)

    @staticmethod
    def getPid():
        try:
            try:
                parent = os.getppid()
            except:
                parent = None
            return '%d %s' % (os.getpid(),
                              '(%d)' % parent if parent and parent > 1 else '')
        except:
            return 0

    @staticmethod
    def getIdentifier():
        return '%s %s' % (Env.get('appname'),
                          fire_event('app.version', single=True))