Exemple #1
0
 def setUp(self, conf='/test.cfg'):
     settings = Settings()
     settings.setFile(base_path + conf)
     Env.set('settings', settings)
     Env.set('http_opener', requests.Session())
     Env.set('cache', NoCache())
     return YGG()
Exemple #2
0
 def setUp(self, conf='/test.cfg'):
     settings = Settings()
     settings.setFile(base_path + conf)
     Env.set('settings', settings)
     Env.set('http_opener', requests.Session())
     Env.set('cache', NoCache())
     YGG.log.logger.setLevel('DEBUG')
     YGG.log.logger.addHandler(handler)
     return YGG()
Exemple #3
0
    def setUp(self, conf='/test.cfg'):
        settings = Settings()
        settings.setFile(base_path + conf)
        """
        To not regenerate an Travis encrypted token at every ygg hostname
        change
        """
        if not settings.get('url', 'ygg'):
            settings.set('ygg', 'url', 'https://www2.yggtorrent.ch')
        if not settings.get('login_url', 'ygg'):
            settings.set('ygg', 'login_url', 'https://www.yggtorrent.ch/')

        Env.set('settings', settings)
        Env.set('http_opener', requests.Session())
        Env.set('cache', NoCache())
        return YGG()
class Env:
    ''' Environment variables '''
    _uses_git = False
    _debug = False
    _settings = Settings()
    _loader = Loader()
    _cache = None
    _options = None
    _args = None
    _quiet = False
    _deamonize = False
    _version = 0.5
    ''' 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 set(attr, value):
        return setattr(Env, '_' + attr, value)

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

        # Return setting
        if value == None:
            return Env.get('settings').get(attr,
                                           default=default,
                                           section=section)

        # Set setting
        s = Env.get('settings')
        s.set(section, attr, value)
        return s

    @staticmethod
    def getPermission(type):
        return int(
            Env.get('settings').get('permission_%s' % type, default=0777))
Exemple #5
0
class OptionMetaSuite(TestCase):
    """ tests for ro rw hidden options """
    def setUp(self):
        self.s = Settings()
        self.meta = self.s.option_meta_suffix()

        # hide real config-parser:
        self.s.p = Mock()

    def test_no_meta_option(self):
        s = self.s

        section = 'core'
        option = 'url'

        option_meta = option + self.meta
        # setup mock
        s.p.getboolean = Mock(return_value=True)

        # there is no META-record for our option:
        s.p.has_option = Mock(
            side_effect=lambda s, o: not (s == section and o == option_meta))

        # by default all options are writable and readable
        self.assertTrue(s.is_option_writable(section, option))
        self.assertTrue(s.is_option_readable(section, option))

    def test_non_writable(self):
        s = self.s

        section = 'core'
        option = 'url'

        def mock_get_meta_ro(s, o):
            if (s == section and o == option_meta):
                return 'ro'
            return 11

        option_meta = option + self.meta
        # setup mock
        s.p.has_option = Mock(return_value=True)
        s.p.get = Mock(side_effect=mock_get_meta_ro)

        # by default all options are writable and readable
        self.assertFalse(s.is_option_writable(section, option))
        self.assertTrue(s.is_option_readable(section, option))
class OptionMetaSuite(TestCase):
    """ tests for ro rw hidden options """

    def setUp(self):
        self.s = Settings()
        self.meta = self.s.optionMetaSuffix()

        # hide real config-parser:
        self.s.p = Mock()

    def test_no_meta_option(self):
        s = self.s

        section = 'core'
        option = 'url'

        option_meta = option + self.meta
        # setup mock
        s.p.getboolean = Mock(return_value=True)

        # there is no META-record for our option:
        s.p.has_option = Mock(side_effect=lambda s, o: not (s == section and o == option_meta))

        # by default all options are writable and readable
        self.assertTrue(s.isOptionWritable(section, option))
        self.assertTrue(s.isOptionReadable(section, option))

    def test_non_writable(self):
        s = self.s

        section = 'core'
        option = 'url'

        def mock_get_meta_ro(s, o):
            if (s == section and o == option_meta):
                return 'ro'
            return 11

        option_meta = option + self.meta
        # setup mock
        s.p.has_option = Mock(return_value=True)
        s.p.get = Mock(side_effect=mock_get_meta_ro)

        # by default all options are writable and readable
        self.assertFalse(s.isOptionWritable(section, option))
        self.assertTrue(s.isOptionReadable(section, option))
Exemple #7
0
 def setUp(self):
     self.s = Settings()
Exemple #8
0
    def setUp(self):
        self.s = Settings()
        self.meta = self.s.option_meta_suffix()

        # hide real config-parser:
        self.s.p = Mock()
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
    _engine = 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():
        session = sessionmaker(bind = Env.getEngine())
        return session()

    @staticmethod
    def getEngine():
        existing_engine = Env.get('engine')
        if existing_engine:
            return existing_engine

        engine = create_engine(Env.get('db_path'), echo = False)
        Env.set('engine', engine)

        return engine

    @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.addSection(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.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))
Exemple #10
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()
    def setUp(self):
        self.s = Settings()
        self.meta = self.s.optionMetaSuffix()

        # hide real config-parser:
        self.s.p = Mock()