Beispiel #1
0
    def test_get_lower(self):
        conf = Conf()
        for lower in ["RUBENRUA", "RubenRua", "RubenruA", "rubenrua"]:
            conf.set("s", "k", lower)
            self.assertEqual(conf.get_lower("s", "k"), "rubenrua")

        self.assertEqual(conf.get_lower("s", "k_not_exists"), None)
Beispiel #2
0
    def test_profile_with_no_profiles_in_files(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)
Beispiel #3
0
 def test_profile_with_no_profiles_in_files(self):
     conf_file = get_resource('conf/conf.ini')
     conf_dist_file = get_resource('conf/conf_dist.ini')
     profiles_dir = get_resource('conf/profiles')
     conf = Conf(conf_file, conf_dist_file, profiles_dir)
     conf.reload()
     self.assertEqual(len(conf.get_profiles()), 1)
Beispiel #4
0
    def setUp(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'profile', 'conf_good.ini')
        conf_dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'profile', 'conf-dist.ini')
        folder_path = path.join(path.dirname(path.abspath(__file__)),
                                'resources', 'profile', 'folder')

        self.conf = Conf(conf_file,conf_dist_file, folder_path)
Beispiel #5
0
    def test_profile_with_no_profiles_in_files(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
        conf_dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf_dist.ini')
        profiles_dir = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)
Beispiel #6
0
    def test_active_tag_default_profile(self):
        conf_file = get_resource('conf/conf_active.ini')
        dist_file = get_resource('conf/conf-dist.ini')
        conf = Conf(conf_file, dist_file)

        profile = conf.get_current_profile()

        self.assertEqual(1, len(profile.tracks))
Beispiel #7
0
    def setUp(self):
        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file = get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file, self.backup_conf_file)
        self.conf = Conf(self.conf_file, dist_file)
        self.conf.reload()
class TestFunctions(TestCase):

    def setUp(self):
        self.tmppath = mkdtemp()

        repo = repository.Repository(self.tmppath)
        context.set('repository', repo)

        # conf = Conf()
        # context.set('conf', conf)

        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file =get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file,self.backup_conf_file)
        self.conf = Conf(self.conf_file,dist_file)
        self.conf.reload()



    def tearDown(self):
        rmtree(self.tmppath)
        shutil.copyfile(self.backup_conf_file,self.conf_file)
        os.remove(self.backup_conf_file)
        del self.conf


    def test_cleanstale_plugin(self):
        dispatcher = context.get_dispatcher()
        repo = context.get_repository()
        conf = context.get_conf()
        now = datetime.datetime.utcnow()

        mp = mediapackage.Mediapackage(identifier="1", title='MP#1', date=(now - datetime.timedelta(days=1)))
        repo.add(mp)
        mp = mediapackage.Mediapackage(identifier="2", title='MP#2', date=(now - datetime.timedelta(days=30)))
        repo.add(mp)
        mp = mediapackage.Mediapackage(identifier="3", title='MP#3', date=(now - datetime.timedelta(days=60)))
        repo.add(mp)
        mp = mediapackage.Mediapackage(identifier="4", title='MP#4', date=(now + datetime.timedelta(days=1)))
        repo.add(mp)
        mp = mediapackage.Mediapackage(identifier="5", title='MP#5', date=(now + datetime.timedelta(days=30)))
        repo.add(mp)


        conf.set('cleanstale','maxarchivaldays', '70')
        cleanstale.init()
        self.assertEqual(len(repo), 5)

        conf.set('cleanstale','maxarchivaldays', '50')
        cleanstale.init()
        dispatcher.emit('timer-nightly')
        self.assertEqual(len(repo), 4)
        conf.set('cleanstale','maxarchivaldays', '20')
        cleanstale.init()
        dispatcher.emit('timer-nightly')
        self.assertEqual(len(repo), 3)
Beispiel #9
0
    def setUp(self):
        self.conf_file = get_resource('profile/conf_good.ini')
        self.backup_conf_file = get_resource('profile/conf_good_backup.ini')
        conf_dist_file = get_resource('profile/conf-dist.ini')
        folder_path = get_resource('profile/folder')

        shutil.copyfile(self.conf_file,self.backup_conf_file)
        self.conf = Conf(self.conf_file,conf_dist_file, folder_path)
        self.conf.reload()
Beispiel #10
0
    def __get_dependencies(self):
        dispatcher = context.get_dispatcher()
        repo = Repository(self.tmppath)
        worker = self.WorkerMock()
        conf = Conf()
        conf.set("allows", "overlap", "False")
        logger = Logger(None)

        return dispatcher, repo, worker, conf, logger
Beispiel #11
0
 def test_get_hostname(self):
     conf = Conf()
     conf.set('config', 'ingest', None)
     conf.set('basic', 'admin', 'True')
     self.assertEqual('GCMobile-' + socket.gethostname(), conf.get_hostname())
     self.assertEqual(1, len(conf.get_tracks_in_mh_dict()))
     self.assertEqual({'capture.device.names': 'defaults'}, conf.get_tracks_in_mh_dict())
     conf.set('basic', 'admin', 'False')
     self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())
Beispiel #12
0
    def test_profile_with_no_profiles_in_files(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)),
                              'resources', 'conf', 'conf.ini')
        conf_dist_file = path.join(path.dirname(path.abspath(__file__)),
                                   'resources', 'conf', 'conf_dist.ini')
        profiles_dir = path.join(path.dirname(path.abspath(__file__)),
                                 'resources', 'conf', 'profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)
Beispiel #13
0
    def test_active_tag_default_profile(self):
        conf_file = get_resource('conf/conf_active.ini')
        backup_conf_active = get_resource('conf/conf_active.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(conf_file, backup_conf_active)
        conf = Conf(conf_file, dist_file)
        conf.reload()
        profile = conf.get_current_profile()
        self.assertEqual(1, len(profile.tracks))
        shutil.copyfile(backup_conf_active, conf_file)
        os.remove(backup_conf_active)
    def test_active_tag_default_profile(self):
        conf_file = get_resource('conf/conf_active.ini')
        backup_conf_active = get_resource('conf/conf_active.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(conf_file, backup_conf_active)
        conf = Conf(conf_file, dist_file)
        conf.reload()
        profile = conf.get_current_profile()
        self.assertEqual(1, len(profile.tracks))
        shutil.copyfile(backup_conf_active, conf_file)
        os.remove(backup_conf_active)
Beispiel #15
0
    def test_get_list(self):
        conf = Conf()
        self.assertEqual(conf.get_list('s', 'k'), [])

        conf.set('s', 'k', '1 2 3 4 5 6')
        self.assertEqual(conf.get_list('s', 'k'), ['1', '2', '3', '4', '5', '6'])

        conf.set('s', 'k', 'one two three')
        self.assertEqual(conf.get_list('s', 'k'), ['one', 'two', 'three'])
Beispiel #16
0
 def test_get_hostname(self):
     conf = Conf()
     conf.set("config", "ingest", None)
     conf.set("basic", "admin", "True")
     self.assertEqual("GCMobile-" + socket.gethostname(), conf.get_hostname())
     self.assertEqual(1, len(conf.get_tracks_in_mh_dict()))
     self.assertEqual({"capture.device.names": "defaults"}, conf.get_tracks_in_mh_dict())
     conf.set("basic", "admin", "False")
     self.assertEqual("GC-" + socket.gethostname(), conf.get_hostname())
Beispiel #17
0
 def test_get_hostname(self):
     conf = Conf()
     conf.set('config', 'ingest', None)
     conf.set('basic', 'admin', 'True')
     self.assertEqual('GCMobile-' + socket.gethostname(), conf.get_hostname())
     self.assertEqual(1, len(conf.get_tracks_in_mh_dict()))
     self.assertEqual({'capture.device.names': 'defaults'}, conf.get_tracks_in_mh_dict())
     conf.set('basic', 'admin', 'False')
     self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())
Beispiel #18
0
    def test_invalid_ini(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        old_conf = self.conf.get_all()

        content = ''
        with open(get_resource('conf/conf.ini'), 'r') as content_file:
            content = content_file.read()

        # Override conf file
        f = open(get_resource('conf/conf.ini'), 'w')
        f.write('testing wrong config file')
        f.close()

        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        new_conf = self.conf.get_all()

        self.assertEqual(old_conf, new_conf)

        # Override conf file
        f = open(get_resource('conf/conf.ini'), 'w')
        f.write(content)
        f.close()
Beispiel #19
0
    def setUp(self):
        for service_name in [
                'conf', 'dispatcher', 'mainwindow', 'heartbeat', 'repository',
                'occlient', 'scheduler'
        ]:
            if context.has(service_name):
                context.delete(service_name)

        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file = get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file, self.backup_conf_file)
        self.conf = Conf(self.conf_file, dist_file)
        context.set('conf', self.conf)
        self.conf.reload()
Beispiel #20
0
    def setUp(self):
        self.tmppath = mkdtemp()

        repo = repository.Repository(self.tmppath)
        context.set('repository', repo)

        # conf = Conf()
        # context.set('conf', conf)

        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file = get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file, self.backup_conf_file)
        self.conf = Conf(self.conf_file, dist_file)
        self.conf.reload()
Beispiel #21
0
    def test_get_boolean(self):
        conf = Conf()
        for yes in ['True', 'true', 'yes', 'si', 'y', 'OK', 'Y', 'TRUE']:
            conf.set('s', 'k', yes)
            self.assertTrue(conf.get_boolean('s', 'k'), 'Check if {0} is True'.format(yes))

        for no in ['None', 'not', 'False', 'no', 'n']:
            conf.set('s', 'k', no)
            self.assertFalse(conf.get_boolean('s', 'k'), 'Check if {0} is False'.format(no))
Beispiel #22
0
    def test_get_list(self):
        conf = Conf()
        self.assertEqual(conf.get_list("s", "k"), [])

        conf.set("s", "k", "1 2 3 4 5 6")
        self.assertEqual(conf.get_list("s", "k"), ["1", "2", "3", "4", "5", "6"])

        conf.set("s", "k", "one two three")
        self.assertEqual(conf.get_list("s", "k"), ["one", "two", "three"])
    def setUp(self):
        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file =get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file,self.backup_conf_file)
        self.conf = Conf(self.conf_file,dist_file)
        self.conf.reload()
Beispiel #24
0
 def test_init_all_files(self):
     conf_file = path.join(path.dirname(path.abspath(__file__)),
                           'resources', 'conf', 'conf.ini')
     conf_dist_file = path.join(path.dirname(path.abspath(__file__)),
                                'resources', 'conf', 'conf-dist.ini')
     conf = Conf(conf_file, conf_dist_file)
     self.assertEqual(conf_file, conf.conf_file)
     self.assertEqual(conf_dist_file, conf.conf_dist_file)
Beispiel #25
0
    def setUp(self):
        self.tmppath = mkdtemp()

        repo = repository.Repository(self.tmppath)
        context.set('repository', repo)

        conf = Conf()
        context.set('conf', conf)
Beispiel #26
0
def get_conf():
    """
    Get the Conf class from the App Context
    """
    if 'conf' not in __galicaster_context:
        __galicaster_context['conf'] = Conf()

    return __galicaster_context['conf']
Beispiel #27
0
 def test_init_no_file(self):
     conf_file = path.abspath(
         path.join(path.dirname(__file__), '..', 'conf.ini'))
     conf_dist_file = path.abspath(
         path.join(path.dirname(__file__), '..', 'conf-dist.ini'))
     conf = Conf()
     self.assertEqual(conf_file, conf.conf_file)
     self.assertEqual(conf_dist_file, conf.conf_dist_file)
Beispiel #28
0
 def test_init_no_file(self):
     primary_conf = path.join('/etc/galicaster','conf.ini')
     secondary_conf = path.abspath(path.join(path.dirname(__file__), '..', '..', 'conf.ini'))
     secondary_dist = path.abspath(path.join(path.dirname(__file__), '..', '..', 'conf-dist.ini'))
     # Conf loads default conf and conf-dist
     conf = Conf(conf_dist_file=secondary_dist)
     self.assertEqual( primary_conf if path.isfile(primary_conf) else secondary_conf,
                       conf.conf_file) 
     self.assertEqual( secondary_dist,
                       conf.conf_dist_file) 
Beispiel #29
0
    def test_get_boolean(self):
        conf = Conf()
        for yes in ["True", "true", "yes", "si", "y", "OK", "Y", "TRUE"]:
            conf.set("s", "k", yes)
            self.assertTrue(conf.get_boolean("s", "k"), "Check if {0} is True".format(yes))

        for no in ["None", "not", "False", "no", "n"]:
            conf.set("s", "k", no)
            self.assertFalse(conf.get_boolean("s", "k"), "Check if {0} is False".format(no))
Beispiel #30
0
def get_conf():
    """Creates if necessary and retrieves the Conf class from the App Context.
    Returns:
        Conf: the conf instantiation in galicaster context.
    """
    from galicaster.core.conf import Conf

    if 'conf' not in __galicaster_context:
        __galicaster_context['conf'] = Conf()
        __galicaster_context['conf'].reload()

    return __galicaster_context['conf']
Beispiel #31
0
 def test_init_no_dist_file(self):
     conf_file = path.join(path.dirname(path.abspath(__file__)),
                           'resources', 'conf', 'conf.ini')
     primary_dist = path.join('/usr/share/galicaster/', 'conf-dist.ini')
     secondary_dist = path.abspath(
         path.join(path.dirname(__file__), '..', 'conf-dist.ini'))
     #conf load custom conf and default dist
     conf = Conf(conf_file)
     self.assertEqual(conf_file, conf.conf_file)
     self.assertEqual(
         primary_dist if path.isfile(primary_dist) else secondary_dist,
         conf.conf_dist_file)
    def test_invalid_ini(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        old_conf = self.conf.get_all()

        content = ''
        with open(get_resource('conf/conf.ini'), 'r') as content_file:
                content = content_file.read()

        # Override conf file
        f = open(get_resource('conf/conf.ini'),'w')
        f.write('testing wrong config file')
        f.close()

        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        new_conf = self.conf.get_all()

        self.assertEqual(old_conf, new_conf)

        # Override conf file
        f = open(get_resource('conf/conf.ini'),'w')
        f.write(content)
        f.close()
Beispiel #33
0
    def test_get_lower(self):
        conf = Conf()
        for lower in ['RUBENRUA', 'RubenRua', 'RubenruA', 'rubenrua']:
            conf.set('s', 'k', lower)
            self.assertEqual(conf.get_lower('s', 'k'), 'rubenrua')

        self.assertEqual(conf.get_lower('s', 'k_not_exists'), None)
Beispiel #34
0
    def setUp(self):
        """ Set up clear conf with a custom logger and repository folder.
        """
        self.conf_path = '/etc/galicaster/conf.ini'
        identifier = self.id().split('.')
        identifier.reverse()
        test_number = re.sub('\D','',identifier[0])
        self.test_path = '/tmp/test{}'.format(test_number)

        if os.path.exists(self.conf_path) and not os.path.exists('{}.old'.format(self.conf_path)):
            os.rename(self.conf_path,'{}.old'.format(self.conf_path))
        shutil.copyfile(get_resource('conf/functional_test.ini'),'/etc/galicaster/conf.ini')
        if not os.path.exists(self.test_path):
            os.makedirs('{}/logs/'.format(self.test_path))
        self.conf = Conf()

        self.conf.set('basic','repository','{}/Repository'.format(self.test_path))
        self.conf.set('logger','path','{}/logs/galicaster.log'.format(self.test_path))
        self.conf.update()

        config.load({'logDir':'{}/logs/'.format(self.test_path)})
        from . import recording
    def setUp(self):
        for service_name in ['conf', 'dispatcher', 'mainwindow', 'heartbeat',
                             'repository', 'occlient', 'scheduler']:
            if context.has(service_name):
                context.delete(service_name)

        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file =get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file,self.backup_conf_file)
        self.conf = Conf(self.conf_file,dist_file)
        context.set('conf',self.conf)
        self.conf.reload()
Beispiel #36
0
    def __get_dependencies(self):
        dispatcher = context.get_dispatcher()
        repo = Repository(self.tmppath)
        worker = self.WorkerMock()
        conf = Conf()
        conf.reload()
        conf.set("allows", "overlap", "False")
        logger = Logger(None)

        return dispatcher, repo, worker, conf, logger
    def setUp(self):
        self.tmppath = mkdtemp()

        repo = repository.Repository(self.tmppath)
        context.set('repository', repo)

        # conf = Conf()
        # context.set('conf', conf)

        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file =get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file,self.backup_conf_file)
        self.conf = Conf(self.conf_file,dist_file)
        self.conf.reload()
Beispiel #38
0
 def test_get_int(self):
     conf = Conf()
     conf.set("s", "k", "10")
     self.assertEqual(conf.get_int("s", "k"), 10)
Beispiel #39
0
 def setUp(self):
     conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
     dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf-dist.ini')
     self.conf = Conf(conf_file,dist_file)
Beispiel #40
0
class TestFunctions(TestCase):
        
    def setUp(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
        dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf-dist.ini')
        self.conf = Conf(conf_file,dist_file)


    def tearDown(self):
        del self.conf

    
    def test_init_no_file(self):
        primary_conf = path.join('/etc/galicaster','conf.ini')
        secondary_conf = path.abspath(path.join(path.dirname(__file__), '..', 'conf.ini'))
        primary_dist = path.join('/usr/share/galicaster/',  'conf-dist.ini')
        secondary_dist = path.abspath(path.join(path.dirname(__file__), '..', 'conf-dist.ini'))
        # Conf loads default conf and conf-dist
        conf = Conf()
        self.assertEqual( primary_conf if path.isfile(primary_conf) else secondary_conf,
                          conf.conf_file) 
        self.assertEqual( primary_dist if path.isfile(primary_dist) else secondary_dist,
                          conf.conf_dist_file) 

    def test_init_no_dist_file(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
        primary_dist = path.join('/usr/share/galicaster/',  'conf-dist.ini')
        secondary_dist = path.abspath(path.join(path.dirname(__file__), '..', 'conf-dist.ini'))
        #conf load custom conf and default dist
        conf = Conf(conf_file)
        self.assertEqual(conf_file, conf.conf_file)
        self.assertEqual( primary_dist if path.isfile(primary_dist) else secondary_dist,
                          conf.conf_dist_file) 

    def test_init_all_files(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
        conf_dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf-dist.ini')
        conf = Conf(conf_file, conf_dist_file)
        self.assertEqual(conf_file, conf.conf_file)
        self.assertEqual(conf_dist_file, conf.conf_dist_file)


    def test_get_and_set(self):
        # GET data in conf-dist
        self.assertEqual('full', self.conf.get('ingest', 'workflow'))
        # GET data in conf
        self.assertEqual('track1', self.conf.get('track1', 'name'))
        # GET data in conf (and conf-dist)
        self.assertEqual('presentation', self.conf.get('screen', 'left'))
        # SET
        self.conf.set('section', 'key', 'value')
        self.assertEqual('value', self.conf.get('section', 'key'))
        

    def test_reload(self):
        self.conf.set('basic', 'temp', 'temporal')
        self.assertEqual('temporal', self.conf.get('basic', 'temp'))
        self.conf.reload()
        self.assertEqual('/tmp/repo', self.conf.get('basic', 'temp'))
        

    def test_get_tracks_in_mh_dict(self):
        conf = self.conf.get_tracks_in_mh_dict()
        self.assertEqual(len(conf), 3*3 +1)
        self.assertEqual(conf['capture.device.names'], 'track1,track3,track2')
        self.assertEqual(conf['capture.device.track2.outputfile'], 'SCREEN.mpeg')
        self.assertEqual(conf['capture.device.track2.src'], '/dev/null')

    def test_profile_with_no_profiles_in_files(self):
        conf_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf.ini')
        conf_dist_file = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'conf_dist.ini')
        profiles_dir = path.join(path.dirname(path.abspath(__file__)), 'resources', 'conf', 'profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)

    def test_init_track(self):
        track = Track()
        self.assertEqual(track.name, None)
        self.assertEqual(track.device, None)
        self.assertEqual(track.flavor, None)
        self.assertEqual(track.location, None)
        self.assertEqual(track.file, None)
        self.assertEqual(len(track), 5)

        track.name = 'v_name'
        track.device = 'v_device'
        track.flavor = 'v_flavor'
        track.location = 'v_location'
        track.file = 'v_file'

        self.assertEqual(track.name, 'v_name')
        self.assertEqual(track.device, 'v_device')
        self.assertEqual(track.flavor, 'v_flavor')
        self.assertEqual(track.location, 'v_location')
        self.assertEqual(track.file, 'v_file')
        self.assertEqual(track['name'], 'v_name')
        self.assertEqual(track['device'], 'v_device')
        self.assertEqual(track['flavor'], 'v_flavor')
        self.assertEqual(track['location'], 'v_location')
        self.assertEqual(track['file'], 'v_file')

        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(track.values(), ['v_name', 'v_device', 'v_flavor', 'v_location', 'v_file'])
        self.assertEqual(track.basic(), {'name': 'v_name', 'device': 'v_device', 
                                        'flavor': 'v_flavor', 'location': 'v_location', 
                                        'file': 'v_file'})
        self.assertEqual(track.options(), {})
        

    def test_add_and_del_value_in_track(self):
        track = Track()
        track['new_key'] = 'new_value'
        self.assertEqual(len(track), 6)
        self.assertEqual(track['new_key'], 'new_value')
        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file', 'new_key'])
        self.assertEqual(track.values(), [None, None, None, None, None, 'new_value'])
        self.assertEqual(track.basic(), {'name': None, 'device': None, 'flavor': None, 
                                        'location': None, 'file': None})
        self.assertEqual(track.options(), {'new_key': 'new_value'})

        del track['new_key']
        self.assertEqual(len(track), 5)
        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(track.values(), [None, None, None, None, None])
        self.assertEqual(track.basic(), {'name': None, 'device': None, 'flavor': None, 
                                         'location': None, 'file': None})
        self.assertEqual(track.options(), {})
                

    def test_init_profile(self):
        profile = Profile()
        self.assertEqual(profile.name, 'New Profile')

        profile = Profile('test')
        self.assertEqual(profile.name, 'test')


    def test_add_track_to_profile(self):
        profile = Profile()
        self.assertEqual(0, len(profile.tracks))
        
        t1 = profile.new_track({})
        self.assertEqual(1, len(profile.tracks))
        
        t2 = Track()
        profile.add_track(t2)
        self.assertEqual(2, len(profile.tracks))

        profile.remove_track(t2)
        self.assertEqual(1, len(profile.tracks))
                

    def test_get_boolean_int_lower(self):
        conf = Conf()
        for yes in ['True', 'true', 'yes', 'si', 'y', 'OK', 'Y', 'TRUE']:
            conf.set('s', 'k', yes)
            self.assertTrue(conf.get_boolean('s', 'k'), 'Check if {0} is True'.format(yes))

        for no in ['None', 'not', 'False', 'no', 'n']:
            conf.set('s', 'k', no)
            self.assertFalse(conf.get_boolean('s', 'k'), 'Check if {0} is False'.format(no))
        
        for lower in ['RUBENRUA', 'RubenRua', 'RubenruA', 'rubenrua']:
            conf.set('s', 'k', lower)
            self.assertEqual(conf.get_lower('s', 'k'), 'rubenrua')

        self.assertEqual(conf.get_lower('s', 'k_not_exists'), None)

        conf.set('s', 'k', '10')
        self.assertEqual(conf.get_int('s', 'k'), 10)


    def test_track_property(self):
        track = Track()
        track.name = 'name'
        self.assertEqual(track.name, 'name')
        self.assertEqual(track['name'], 'name')


    def test_get_hostname(self):
        conf = Conf()
        conf.set('config', 'ingest', None)
        conf.set('basic', 'admin', 'True')
        self.assertEqual('GCMobile-' + socket.gethostname(), conf.get_hostname())
        self.assertEqual(1, len(conf.get_tracks_in_mh_dict()))
        self.assertEqual({'capture.device.names': 'defaults'}, conf.get_tracks_in_mh_dict())
        conf.set('basic', 'admin', 'False')
        self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())
Beispiel #41
0
    def test_get_dict(self):
        conf = Conf()
        self.assertEqual(conf.get_dict("s", "k"), {})

        conf.set("s", "k", "k1:v1;k2:v2;k3:v3")
        self.assertEqual(conf.get_dict("s", "k"), {"k1": "v1", "k2": "v2", "k3": "v3"})
Beispiel #42
0
    def test_get_boolean_int_lower(self):
        conf = Conf()
        for yes in ['True', 'true', 'yes', 'si', 'y', 'OK', 'Y', 'TRUE']:
            conf.set('s', 'k', yes)
            self.assertTrue(conf.get_boolean('s', 'k'), 'Check if {0} is True'.format(yes))

        for no in ['None', 'not', 'False', 'no', 'n']:
            conf.set('s', 'k', no)
            self.assertFalse(conf.get_boolean('s', 'k'), 'Check if {0} is False'.format(no))
        
        for lower in ['RUBENRUA', 'RubenRua', 'RubenruA', 'rubenrua']:
            conf.set('s', 'k', lower)
            self.assertEqual(conf.get_lower('s', 'k'), 'rubenrua')

        self.assertEqual(conf.get_lower('s', 'k_not_exists'), None)

        conf.set('s', 'k', '10')
        self.assertEqual(conf.get_int('s', 'k'), 10)
Beispiel #43
0
class TestFunctions(TestCase):
    def setUp(self):
        conf_file = get_resource("conf/conf.ini")
        dist_file = get_resource("conf/conf-dist.ini")
        self.conf = Conf(conf_file, dist_file)

    def tearDown(self):
        del self.conf

    def test_init_no_file(self):
        primary_conf = path.join("/etc/galicaster", "conf.ini")
        secondary_conf = path.abspath(path.join(path.dirname(__file__), "..", "..", "conf.ini"))
        secondary_dist = path.abspath(path.join(path.dirname(__file__), "..", "..", "conf-dist.ini"))
        # Conf loads default conf and conf-dist
        conf = Conf(conf_dist_file=secondary_dist)
        self.assertEqual(primary_conf if path.isfile(primary_conf) else secondary_conf, conf.conf_file)
        self.assertEqual(secondary_dist, conf.conf_dist_file)

    def test_init_all_files(self):
        conf_file = get_resource("conf/conf.ini")
        conf_dist_file = get_resource("conf/conf-dist.ini")
        conf = Conf(conf_file, conf_dist_file)
        self.assertEqual(conf_file, conf.conf_file)
        self.assertEqual(conf_dist_file, conf.conf_dist_file)

    def test_get_and_set(self):
        # GET data in conf-dist
        self.assertEqual("full", self.conf.get("ingest", "workflow"))
        # GET data in conf
        self.assertEqual("track1", self.conf.get("track1", "name"))
        # SET
        self.conf.set("section", "key", "value")
        self.assertEqual("value", self.conf.get("section", "key"))

    def test_reload(self):
        self.conf.set("basic", "temp", "temporal")
        self.assertEqual("temporal", self.conf.get("basic", "temp"))
        self.conf.reload()
        self.assertEqual("/tmp/repo", self.conf.get("basic", "temp"))

    def test_get_tracks_in_oc_dict(self):
        conf = self.conf.get_tracks_in_oc_dict()
        self.assertEqual(len(conf), 3 * 3 + 1)
        self.assertEqual(conf["capture.device.names"], "track1,track3,track2")
        self.assertEqual(conf["capture.device.track2.outputfile"], "SCREEN.mpeg")
        self.assertEqual(conf["capture.device.track2.src"], "/dev/null")

    def test_profile_with_no_profiles_in_files(self):
        conf_file = get_resource("conf/conf.ini")
        conf_dist_file = get_resource("conf/conf_dist.ini")
        profiles_dir = get_resource("conf/profiles")
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)

    def test_init_track(self):
        track = Track()
        self.assertEqual(track.name, None)
        self.assertEqual(track.device, None)
        self.assertEqual(track.flavor, None)
        self.assertEqual(track.location, None)
        self.assertEqual(track.file, None)
        self.assertEqual(len(track), 5)

        track.name = "v_name"
        track.device = "v_device"
        track.flavor = "v_flavor"
        track.location = "v_location"
        track.file = "v_file"

        self.assertEqual(track.name, "v_name")
        self.assertEqual(track.device, "v_device")
        self.assertEqual(track.flavor, "v_flavor")
        self.assertEqual(track.location, "v_location")
        self.assertEqual(track.file, "v_file")
        self.assertEqual(track["name"], "v_name")
        self.assertEqual(track["device"], "v_device")
        self.assertEqual(track["flavor"], "v_flavor")
        self.assertEqual(track["location"], "v_location")
        self.assertEqual(track["file"], "v_file")

        self.assertEqual(track.keys(), ["name", "device", "flavor", "location", "file"])
        self.assertEqual(track.values(), ["v_name", "v_device", "v_flavor", "v_location", "v_file"])
        self.assertEqual(
            track.basic(),
            {"name": "v_name", "device": "v_device", "flavor": "v_flavor", "location": "v_location", "file": "v_file"},
        )
        self.assertEqual(track.options(), {})

    def test_add_and_del_value_in_track(self):
        track = Track()
        track["new_key"] = "new_value"
        self.assertEqual(len(track), 6)
        self.assertEqual(track["new_key"], "new_value")
        self.assertEqual(track.keys(), ["name", "device", "flavor", "location", "file", "new_key"])
        self.assertEqual(track.values(), [None, None, None, None, None, "new_value"])
        self.assertEqual(track.basic(), {"name": None, "device": None, "flavor": None, "location": None, "file": None})
        self.assertEqual(track.options(), {"new_key": "new_value"})

        del track["new_key"]
        self.assertEqual(len(track), 5)
        self.assertEqual(track.keys(), ["name", "device", "flavor", "location", "file"])
        self.assertEqual(track.values(), [None, None, None, None, None])
        self.assertEqual(track.basic(), {"name": None, "device": None, "flavor": None, "location": None, "file": None})
        self.assertEqual(track.options(), {})

    def test_init_profile(self):
        profile = Profile()
        self.assertEqual(profile.name, "New Profile")

        profile = Profile("test")
        self.assertEqual(profile.name, "test")

    def test_add_track_to_profile(self):
        profile = Profile()
        self.assertEqual(0, len(profile.tracks))

        t1 = profile.new_track({})
        self.assertEqual(1, len(profile.tracks))

        t2 = Track()
        profile.add_track(t2)
        self.assertEqual(2, len(profile.tracks))

        profile.remove_track(t2)
        self.assertEqual(1, len(profile.tracks))

    def test_get_boolean(self):
        conf = Conf()
        for yes in ["True", "true", "yes", "si", "y", "OK", "Y", "TRUE"]:
            conf.set("s", "k", yes)
            self.assertTrue(conf.get_boolean("s", "k"), "Check if {0} is True".format(yes))

        for no in ["None", "not", "False", "no", "n"]:
            conf.set("s", "k", no)
            self.assertFalse(conf.get_boolean("s", "k"), "Check if {0} is False".format(no))

    def test_get_lower(self):
        conf = Conf()
        for lower in ["RUBENRUA", "RubenRua", "RubenruA", "rubenrua"]:
            conf.set("s", "k", lower)
            self.assertEqual(conf.get_lower("s", "k"), "rubenrua")

        self.assertEqual(conf.get_lower("s", "k_not_exists"), None)

    def test_get_int(self):
        conf = Conf()
        conf.set("s", "k", "10")
        self.assertEqual(conf.get_int("s", "k"), 10)

    def test_get_list(self):
        conf = Conf()
        self.assertEqual(conf.get_list("s", "k"), [])

        conf.set("s", "k", "1 2 3 4 5 6")
        self.assertEqual(conf.get_list("s", "k"), ["1", "2", "3", "4", "5", "6"])

        conf.set("s", "k", "one two three")
        self.assertEqual(conf.get_list("s", "k"), ["one", "two", "three"])

    def test_get_dict(self):
        conf = Conf()
        self.assertEqual(conf.get_dict("s", "k"), {})

        conf.set("s", "k", "k1:v1;k2:v2;k3:v3")
        self.assertEqual(conf.get_dict("s", "k"), {"k1": "v1", "k2": "v2", "k3": "v3"})

    def test_track_property(self):
        track = Track()
        track.name = "name"
        self.assertEqual(track.name, "name")
        self.assertEqual(track["name"], "name")

    def test_get_hostname(self):
        conf = Conf()
        conf.set("config", "ingest", None)
        conf.set("basic", "admin", "True")
        conf.set("ingest", "hostname", None)
        self.assertEqual("GCMobile-" + socket.gethostname(), conf.get_hostname())
        self.assertEqual(1, len(conf.get_tracks_in_oc_dict()))
        self.assertEqual({"capture.device.names": "defaults"}, conf.get_tracks_in_oc_dict())
        conf.set("basic", "admin", "False")
        self.assertEqual("GC-" + socket.gethostname(), conf.get_hostname())
        name = "123456_654321"
        conf.set("ingest", "hostname", name)
        self.assertEqual(name, conf.get_hostname())

    def test_active_tag_default_profile(self):
        conf_file = get_resource("conf/conf_active.ini")
        dist_file = get_resource("conf/conf-dist.ini")
        conf = Conf(conf_file, dist_file)

        profile = conf.get_current_profile()

        self.assertEqual(1, len(profile.tracks))
class TestFunctional(TestCase):

    def setUp(self):
        """ Set up clear conf with a custom logger and repository folder.
        """
        self.conf_path = '/etc/galicaster/conf.ini'
        identifier = self.id().split('.')
        identifier.reverse()
        test_number = re.sub('\D','',identifier[0])
        self.test_path = '/tmp/test{}'.format(test_number)

        if os.path.exists(self.conf_path) and not os.path.exists('{}.old'.format(self.conf_path)):
            os.rename(self.conf_path,'{}.old'.format(self.conf_path))
        shutil.copyfile(get_resource('conf/functional_test.ini'),'/etc/galicaster/conf.ini')
        if not os.path.exists(self.test_path):
            os.makedirs('{}/logs/'.format(self.test_path))
        self.conf = Conf()

        self.conf.set('basic','repository','{}/Repository'.format(self.test_path))
        self.conf.set('logger','path','{}/logs/galicaster.log'.format(self.test_path))
        self.conf.update()

        config.load({'logDir':'{}/logs/'.format(self.test_path)})
        from . import recording

    def tearDown(self):
        os.rename(self.conf_path,'{}/conf.ini'.format(self.test_path))
        if os.path.exists('{}.old'.format(self.conf_path)):
            os.rename('{}.old'.format(self.conf_path),self.conf_path)
        recording.quit()
        del self.conf

    def test_136(self):
        """ Do 15 recordings of 10 minutes of duration
        with automatic ingest to Opencast
        """
        self.conf.set('ingest','manual','immediately')
        self.conf.set('ingest','active','true')
        self.conf.update()

        recording.start_galicaster()
        recording.rec(10*60, 15)

    def test_137(self):
        """ Check nightly ingest while recording is paused
        """
        self.conf.set('ingest','manual','nightly')
        self.conf.set('ingest','active','true')
        night = datetime.datetime.now() + datetime.timedelta(minutes=1)
        self.conf.set('heartbeat','night',night.strftime('%H:%M'))
        self.conf.update()

        recording.start_galicaster()
        recording.rec(5)
        recording.go_to_recorder()
        recording.start_recording()
        recording.pause_recording()
        remaining_sleep = night - datetime.datetime.now() 
        time.sleep(remaining_sleep.seconds)
        recording.rewind_recording()
        recording.stop_recording()
        recording.go_to_distrib()
Beispiel #45
0
 def test_get_int(self):
     conf = Conf()
     conf.set('s', 'k', '10')
     self.assertEqual(conf.get_int('s', 'k'), 10)
Beispiel #46
0
 def test_init_all_files(self):
     conf_file = get_resource('conf/conf.ini')
     conf_dist_file = get_resource('conf/conf-dist.ini')
     conf = Conf(conf_file, conf_dist_file)
     self.assertEqual(conf_file, conf.conf_file)
     self.assertEqual(conf_dist_file, conf.conf_dist_file)
Beispiel #47
0
 def test_get_hostname(self):
     conf = Conf(self.conf_file)
     conf.set('config', 'ingest', "")
     conf.set('basic', 'admin', 'True')
     conf.set('ingest', 'hostname', "")
     self.assertEqual('GCMobile-' + socket.gethostname(),
                      conf.get_hostname())
     self.assertEqual(1, len(conf.get_tracks_in_oc_dict()))
     self.assertEqual({'capture.device.names': 'defaults'},
                      conf.get_tracks_in_oc_dict())
     conf.set('basic', 'admin', 'False')
     conf.set('ingest', 'hostname', "")
     self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())
     name = "123456_654321"
     conf.set('ingest', 'hostname', name)
     self.assertEqual(name, conf.get_hostname())
     a = conf.remove_option('ingest', 'hostname')
Beispiel #48
0
    def test_get_dict(self):
        conf = Conf()
        self.assertEqual(conf.get_dict('s', 'k'), {})

        conf.set('s', 'k', 'k1:v1;k2:v2;k3:v3')
        self.assertEqual(conf.get_dict('s', 'k'), {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'})
Beispiel #49
0
class TestFunctions(TestCase):
    def setUp(self):
        self.conf_file = get_resource('conf/conf.ini')
        self.backup_conf_file = get_resource('conf/conf.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(self.conf_file, self.backup_conf_file)
        self.conf = Conf(self.conf_file, dist_file)
        self.conf.reload()

    def tearDown(self):
        shutil.copyfile(self.backup_conf_file, self.conf_file)
        os.remove(self.backup_conf_file)
        del self.conf

    def touch(self, fname, times=None):
        with open(fname, 'a'):
            os.utime(fname, times)

    def test_init_no_file(self):
        primary_conf = os.path.join('/etc/galicaster', 'conf.ini')
        secondary_conf = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..', '..', 'conf.ini'))
        secondary_dist = os.path.abspath(
            os.path.join(os.path.dirname(__file__), '..', '..',
                         'conf-dist.ini'))
        # Conf loads default conf and conf-dist
        conf = Conf(conf_dist_file=secondary_dist)
        self.assertEqual(
            primary_conf if os.path.isfile(primary_conf) else secondary_conf,
            conf.conf_file)
        self.assertEqual(secondary_dist, conf.conf_dist_file)

    def test_init_all_files(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf-dist.ini')
        conf = Conf(conf_file, conf_dist_file)
        self.assertEqual(conf_file, conf.conf_file)
        self.assertEqual(conf_dist_file, conf.conf_dist_file)

    def test_invalid_ini(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        old_conf = self.conf.get_all()

        content = ''
        with open(get_resource('conf/conf.ini'), 'r') as content_file:
            content = content_file.read()

        # Override conf file
        f = open(get_resource('conf/conf.ini'), 'w')
        f.write('testing wrong config file')
        f.close()

        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        new_conf = self.conf.get_all()

        self.assertEqual(old_conf, new_conf)

        # Override conf file
        f = open(get_resource('conf/conf.ini'), 'w')
        f.write(content)
        f.close()

    def test_active_tag_default_profile(self):
        conf_file = get_resource('conf/conf_active.ini')
        backup_conf_active = get_resource('conf/conf_active.backup.ini')
        dist_file = get_resource('conf/conf-dist.ini')

        shutil.copyfile(conf_file, backup_conf_active)
        conf = Conf(conf_file, dist_file)
        conf.reload()
        profile = conf.get_current_profile()
        self.assertEqual(1, len(profile.tracks))
        shutil.copyfile(backup_conf_active, conf_file)
        os.remove(backup_conf_active)

    def test_profile_with_no_profiles_in_files(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)
        conf.reload()
        self.assertEqual(len(conf.get_profiles()), 1)

    def test_get_and_set(self):
        # GET data in conf-dist
        self.assertEqual('full', self.conf.get('ingest', 'workflow'))
        # GET data in conf
        self.assertEqual('track1', self.conf.get('track1', 'name'))
        # SET
        self.conf.set('section', 'key', 'value')
        self.assertEqual('value', self.conf.get('section', 'key'))

    def test_get_all(self):
        full = self.conf.get_all()
        user_conf = self.conf.get_all(False)
        print(len(full))
        print(len(user_conf))
        self.assertTrue(len(full) > len(user_conf))

    def test_reload(self):
        self.conf.set('basic', 'temp', 'temporary')
        self.assertEqual('temporary', self.conf.get('basic', 'temp'))
        self.conf.set('basic', 'temp', 'newtemporary')
        self.assertEqual('newtemporary', self.conf.get('basic', 'temp'))
        self.conf.remove_option('basic', 'temp')
        self.assertEqual(None, self.conf.get('basic', 'temp'))
        self.conf.reload()
        self.assertEqual('newtemporary', self.conf.get('basic', 'temp'))

    def test_get_tracks_in_oc_dict(self):
        conf = self.conf.get_tracks_in_oc_dict()
        self.assertEqual(len(conf), 3 * 3 + 1)
        self.assertEqual(conf['capture.device.names'], 'track1,track3,track2')
        self.assertEqual(conf['capture.device.track2.outputfile'],
                         'SCREEN.mpeg')
        self.assertEqual(conf['capture.device.track2.src'], '/dev/null')

    def test_init_track(self):
        track = Track()
        self.assertEqual(track.name, '')
        self.assertEqual(track.device, '')
        self.assertEqual(track.flavor, '')
        self.assertEqual(track.location, '')
        self.assertEqual(track.file, '')
        self.assertEqual(len(track), 5)

        track.name = 'v_name'
        track.device = 'v_device'
        track.flavor = 'v_flavor'
        track.location = 'v_location'
        track.file = 'v_file'

        self.assertEqual(track.name, 'v_name')
        self.assertEqual(track.device, 'v_device')
        self.assertEqual(track.flavor, 'v_flavor')
        self.assertEqual(track.location, 'v_location')
        self.assertEqual(track.file, 'v_file')
        self.assertEqual(track['name'], 'v_name')
        self.assertEqual(track['device'], 'v_device')
        self.assertEqual(track['flavor'], 'v_flavor')
        self.assertEqual(track['location'], 'v_location')
        self.assertEqual(track['file'], 'v_file')

        self.assertEqual(list(track.keys()),
                         ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(
            list(track.values()),
            ['v_name', 'v_device', 'v_flavor', 'v_location', 'v_file'])
        self.assertEqual(
            track.basic(), {
                'name': 'v_name',
                'device': 'v_device',
                'flavor': 'v_flavor',
                'location': 'v_location',
                'file': 'v_file'
            })
        self.assertEqual(track.options(), {})

    def test_add_and_del_value_in_track(self):
        track = Track()
        track['new_key'] = 'new_value'
        self.assertEqual(len(track), 6)
        self.assertEqual(track['new_key'], 'new_value')
        self.assertEqual(
            list(track.keys()),
            ['name', 'device', 'flavor', 'location', 'file', 'new_key'])
        self.assertEqual(list(track.values()),
                         ['', '', '', '', '', 'new_value'])
        self.assertEqual(track.basic(), {
            'name': '',
            'device': '',
            'flavor': '',
            'location': '',
            'file': ''
        })
        self.assertEqual(track.options(), {'new_key': 'new_value'})

        del track['new_key']
        self.assertEqual(len(track), 5)
        self.assertEqual(list(track.keys()),
                         ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(list(track.values()), ['', '', '', '', ''])
        self.assertEqual(track.basic(), {
            'name': '',
            'device': '',
            'flavor': '',
            'location': '',
            'file': ''
        })
        self.assertEqual(track.options(), {})

    def test_init_profile(self):
        profile = Profile()
        self.assertEqual(profile.name, 'New Profile')

        profile = Profile('test')
        self.assertEqual(profile.name, 'test')

    def test_add_track_to_profile(self):
        profile = Profile()
        self.assertEqual(0, len(profile.tracks))

        t1 = profile.new_track({})
        self.assertEqual(1, len(profile.tracks))

        t2 = Track()
        profile.add_track(t2)
        self.assertEqual(2, len(profile.tracks))

        profile.remove_track(t2)
        self.assertEqual(1, len(profile.tracks))

    def test_get_boolean(self):
        for yes in ['True', 'true', 'yes', 'si', 'y', 'OK', 'Y', 'TRUE']:
            self.conf.set('s', 'k', yes)
            self.assertTrue(self.conf.get_boolean('s', 'k'),
                            'Check if {0} is True'.format(yes))

        for no in ['None', 'not', 'False', 'no', 'n']:
            self.conf.set('s', 'k', no)
            self.assertFalse(self.conf.get_boolean('s', 'k'),
                             'Check if {0} is False'.format(no))

        self.conf.set('s', 'k', "0")
        self.assertFalse(self.conf.get_boolean('s', 'k', False))

    def test_get_lower(self):
        for lower in ['RUBENRUA', 'RubenRua', 'RubenruA', 'rubenrua']:
            self.conf.set('s', 'k', lower)
            self.assertEqual(self.conf.get_lower('s', 'k'), 'rubenrua')

        self.assertEqual(self.conf.get_lower('s', 'k_not_exists', None), None)

        self.conf.set('s', 'k', 'TEST')
        self.assertEqual(self.conf.get_lower('s', 'k'), 'test')

        #self.conf.set('s', 'k2', "1234")
        #self.assertEqual(self.conf.get_lower('s', 'k2', 'testing'), 'testing')

    def test_get_int(self):
        self.conf.set('s', 'k', '10')
        self.assertEqual(self.conf.get_int('s', 'k'), 10)

    #  self.conf.set('s', 'k2', 'test')
    #  self.assertEqual(self.conf.get_int('s', 'k2', 20), 20)

    def test_get_hour(self):
        self.conf.set('s', 'k', '12:34')
        self.assertEqual(self.conf.get_hour('s', 'k'), '12:34')

        self.conf.set('s', 'k2', 'test')
        self.assertEqual(self.conf.get_hour('s', 'k2', '11:11'), '11:11')

    def test_get_list(self):
        self.assertEqual(self.conf.get_list('s', 'k'), [])

        self.conf.set('s', 'k', '1 2 3 4 5 6')
        self.assertEqual(self.conf.get_list('s', 'k'),
                         ['1', '2', '3', '4', '5', '6'])

        self.conf.set('s', 'k', 'one two three')
        self.assertEqual(self.conf.get_list('s', 'k'), ['one', 'two', 'three'])

    def test_get_choice(self):
        self.assertEqual(self.conf.get_choice('s', 'k', ['1', '2', '3'], '2'),
                         '2')

        self.conf.set('s', 'k', '1')
        self.assertEqual(self.conf.get_choice('s', 'k', ['1', '2', '3']), '1')

        self.conf.set('s', 'k', 'TEST')
        self.assertEqual(
            self.conf.get_choice('s', 'k', ['1', '2', '3', 'test']), 'test')

    def test_get_choice_uppercase(self):
        self.assertEqual(
            self.conf.get_choice_uppercase('s', 'k', ['1', '2', '3'], '2'),
            '2')

        self.conf.set('s', 'k', '1')
        self.assertEqual(
            self.conf.get_choice_uppercase('s', 'k', ['1', '2', '3']), '1')

        self.conf.set('s', 'k', 'test')
        self.assertEqual(
            self.conf.get_choice_uppercase('s', 'k', ['1', '2', '3', 'TEST']),
            'TEST')

    def test_get_dict(self):
        self.assertEqual(self.conf.get_dict('s', 'k'), {})

        self.conf.set('s', 'k', 'k1:v1;k2:v2;k3:v3')
        self.assertEqual(self.conf.get_dict('s', 'k'), {
            'k1': 'v1',
            'k2': 'v2',
            'k3': 'v3'
        })

    def test_get_json(self):
        self.assertEqual(self.conf.get_json('s', 'k'), {})

        self.conf.set('s', 'k',
                      '{"a":{"a1":"value1", "a2":"value2"},"b": "value3"}')
        self.assertEqual(self.conf.get_json('s', 'k'), {
            "a": {
                "a1": "value1",
                "a2": "value2"
            },
            "b": "value3"
        })

    def test_track_property(self):
        track = Track()
        track.name = 'name'
        self.assertEqual(track.name, 'name')
        self.assertEqual(track['name'], 'name')

    def test_get_hostname(self):
        conf = Conf(self.conf_file)
        conf.set('config', 'ingest', "")
        conf.set('basic', 'admin', 'True')
        conf.set('ingest', 'hostname', "")
        self.assertEqual('GCMobile-' + socket.gethostname(),
                         conf.get_hostname())
        self.assertEqual(1, len(conf.get_tracks_in_oc_dict()))
        self.assertEqual({'capture.device.names': 'defaults'},
                         conf.get_tracks_in_oc_dict())
        conf.set('basic', 'admin', 'False')
        conf.set('ingest', 'hostname', "")
        self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())
        name = "123456_654321"
        conf.set('ingest', 'hostname', name)
        self.assertEqual(name, conf.get_hostname())
        a = conf.remove_option('ingest', 'hostname')

    def test_get_ip_address(self):
        valid = True
        try:
            addr = self.conf.get_ip_address()
            socket.inet_aton(addr)
        except socket.error:
            valid = False
        self.assertTrue(valid)

    def test_set_section(self):
        self.assertEqual(self.conf.set_section(None, {}), False)
        self.assertEqual(self.conf.set_section('k', {
            "a": "1",
            "b": "2"
        }), True)

    def test_get_section(self):
        self.assertEqual(self.conf.set_section('k', {
            "a": "1",
            "b": "2"
        }), True)
        self.assertEqual(self.conf.get_section('k'), {"a": "1", "b": "2"})
        self.assertEqual(self.conf.get_section('kkkkkk'), {})

    def test_get_user_section(self):
        self.assertEqual(self.conf.set_section('k', {
            "a": "1",
            "b": "2"
        }), True)
        self.assertEqual(self.conf.get_user_section('k'), {"a": "1", "b": "2"})
        self.assertEqual(self.conf.get_user_section('kkkkkk'), {})

    @skip("conf changed")
    def test_get_sections(self):
        self.conf.remove_sections()
        self.assertEqual(self.conf.get_sections(), ['basic'])
        self.assertEqual(self.conf.get_user_sections(), [])

    def test_get_modules(self):
        self.assertEqual(self.conf.get_modules(), ['recorder', 'scheduler'])
        self.conf.set('basic', 'admin', 'True')
        self.assertEqual(self.conf.get_modules(),
                         ['recorder', 'scheduler', 'media_manager', 'player'])
        self.conf.set('ingest', 'active', 'True')
        self.assertEqual(
            self.conf.get_modules(),
            ['recorder', 'scheduler', 'media_manager', 'player', 'ocservice'])

    def test_get_color_style(self):
        self.assertEqual(self.conf.get_color_style(), False)
        self.conf.set('color', 'classic', 'True')
        self.assertTrue(self.conf.get_color_style())

    def test_get_free_profile(self):
        profile_name = self.conf.get_free_profile()
        self.assertEqual(profile_name, self.conf.get_free_profile())
        self.touch(profile_name)
        self.assertNotEqual(profile_name, self.conf.get_free_profile())
        os.remove(profile_name)

    def test_get_palette(self):
        self.conf.set('color', 'none', "")
        self.conf.set('color', 'nightly', "")
        self.conf.set('color', 'pending', "")
        self.conf.set('color', 'processing', "")
        self.conf.set('color', 'done', "")
        self.conf.set('color', 'failed', "")
        self.assertEqual(self.conf.get_palette(), ["", "", "", "", "", ""])

        self.conf.set('color', 'none', "#FFFFF0")
        self.conf.set('color', 'nightly', "#FFFFF1")
        self.conf.set('color', 'pending', "#FFFFF2")
        self.conf.set('color', 'processing', "#FFFFF3")
        self.conf.set('color', 'done', "#FFFFF4")
        self.conf.set('color', 'failed', "#FFFFF5")
        self.assertEqual(
            self.conf.get_palette(),
            ["#FFFFF0", "#FFFFF1", "#FFFFF2", "#FFFFF3", "#FFFFF4", "#FFFFF5"])

    def test_export_to_file(self):
        p_name = list(self.conf.get_profiles().keys())[0]
        p = self.conf.get_profiles()[p_name]

        p.path = "/tmp/test_profile1.ini"
        p.export_to_file()
        self.assertTrue(os.path.exists(p.path))
        os.remove(p.path)
Beispiel #50
0
class TestFunctions(TestCase):
        
    def setUp(self):
        conf_file = get_resource('conf/conf.ini')
        dist_file = get_resource('conf/conf-dist.ini')
        self.conf = Conf(conf_file,dist_file)


    def tearDown(self):
        del self.conf

    
    def test_init_no_file(self):
        primary_conf = path.join('/etc/galicaster','conf.ini')
        secondary_conf = path.abspath(path.join(path.dirname(__file__), '..', '..', 'conf.ini'))
        secondary_dist = path.abspath(path.join(path.dirname(__file__), '..', '..', 'conf-dist.ini'))
        # Conf loads default conf and conf-dist
        conf = Conf(conf_dist_file=secondary_dist)
        self.assertEqual( primary_conf if path.isfile(primary_conf) else secondary_conf,
                          conf.conf_file) 
        self.assertEqual( secondary_dist,
                          conf.conf_dist_file) 

    def test_init_all_files(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf-dist.ini')
        conf = Conf(conf_file, conf_dist_file)
        self.assertEqual(conf_file, conf.conf_file)
        self.assertEqual(conf_dist_file, conf.conf_dist_file)


    def test_get_and_set(self):
        # GET data in conf-dist
        self.assertEqual('full', self.conf.get('ingest', 'workflow'))
        # GET data in conf
        self.assertEqual('track1', self.conf.get('track1', 'name'))
        # SET
        self.conf.set('section', 'key', 'value')
        self.assertEqual('value', self.conf.get('section', 'key'))
        

    def test_reload(self):
        self.conf.set('basic', 'temp', 'temporal')
        self.assertEqual('temporal', self.conf.get('basic', 'temp'))
        self.conf.reload()
        self.assertEqual('/tmp/repo', self.conf.get('basic', 'temp'))
        

    def test_get_tracks_in_mh_dict(self):
        conf = self.conf.get_tracks_in_mh_dict()
        self.assertEqual(len(conf), 3*3 +1)
        self.assertEqual(conf['capture.device.names'], 'track1,track3,track2')
        self.assertEqual(conf['capture.device.track2.outputfile'], 'SCREEN.mpeg')
        self.assertEqual(conf['capture.device.track2.src'], '/dev/null')

    def test_profile_with_no_profiles_in_files(self):
        conf_file = get_resource('conf/conf.ini')
        conf_dist_file = get_resource('conf/conf_dist.ini')
        profiles_dir = get_resource('conf/profiles')
        conf = Conf(conf_file, conf_dist_file, profiles_dir)

        self.assertEqual(len(conf.get_profiles()), 1)

    def test_init_track(self):
        track = Track()
        self.assertEqual(track.name, None)
        self.assertEqual(track.device, None)
        self.assertEqual(track.flavor, None)
        self.assertEqual(track.location, None)
        self.assertEqual(track.file, None)
        self.assertEqual(len(track), 5)

        track.name = 'v_name'
        track.device = 'v_device'
        track.flavor = 'v_flavor'
        track.location = 'v_location'
        track.file = 'v_file'

        self.assertEqual(track.name, 'v_name')
        self.assertEqual(track.device, 'v_device')
        self.assertEqual(track.flavor, 'v_flavor')
        self.assertEqual(track.location, 'v_location')
        self.assertEqual(track.file, 'v_file')
        self.assertEqual(track['name'], 'v_name')
        self.assertEqual(track['device'], 'v_device')
        self.assertEqual(track['flavor'], 'v_flavor')
        self.assertEqual(track['location'], 'v_location')
        self.assertEqual(track['file'], 'v_file')

        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(track.values(), ['v_name', 'v_device', 'v_flavor', 'v_location', 'v_file'])
        self.assertEqual(track.basic(), {'name': 'v_name', 'device': 'v_device', 
                                        'flavor': 'v_flavor', 'location': 'v_location', 
                                        'file': 'v_file'})
        self.assertEqual(track.options(), {})
        

    def test_add_and_del_value_in_track(self):
        track = Track()
        track['new_key'] = 'new_value'
        self.assertEqual(len(track), 6)
        self.assertEqual(track['new_key'], 'new_value')
        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file', 'new_key'])
        self.assertEqual(track.values(), [None, None, None, None, None, 'new_value'])
        self.assertEqual(track.basic(), {'name': None, 'device': None, 'flavor': None, 
                                        'location': None, 'file': None})
        self.assertEqual(track.options(), {'new_key': 'new_value'})

        del track['new_key']
        self.assertEqual(len(track), 5)
        self.assertEqual(track.keys(), ['name', 'device', 'flavor', 'location', 'file'])
        self.assertEqual(track.values(), [None, None, None, None, None])
        self.assertEqual(track.basic(), {'name': None, 'device': None, 'flavor': None, 
                                         'location': None, 'file': None})
        self.assertEqual(track.options(), {})
                

    def test_init_profile(self):
        profile = Profile()
        self.assertEqual(profile.name, 'New Profile')

        profile = Profile('test')
        self.assertEqual(profile.name, 'test')


    def test_add_track_to_profile(self):
        profile = Profile()
        self.assertEqual(0, len(profile.tracks))
        
        t1 = profile.new_track({})
        self.assertEqual(1, len(profile.tracks))
        
        t2 = Track()
        profile.add_track(t2)
        self.assertEqual(2, len(profile.tracks))

        profile.remove_track(t2)
        self.assertEqual(1, len(profile.tracks))
                

    def test_get_boolean(self):
        conf = Conf()
        for yes in ['True', 'true', 'yes', 'si', 'y', 'OK', 'Y', 'TRUE']:
            conf.set('s', 'k', yes)
            self.assertTrue(conf.get_boolean('s', 'k'), 'Check if {0} is True'.format(yes))

        for no in ['None', 'not', 'False', 'no', 'n']:
            conf.set('s', 'k', no)
            self.assertFalse(conf.get_boolean('s', 'k'), 'Check if {0} is False'.format(no))
        
    def test_get_lower(self):
        conf = Conf()
        for lower in ['RUBENRUA', 'RubenRua', 'RubenruA', 'rubenrua']:
            conf.set('s', 'k', lower)
            self.assertEqual(conf.get_lower('s', 'k'), 'rubenrua')

        self.assertEqual(conf.get_lower('s', 'k_not_exists'), None)


    def test_get_int(self):
        conf = Conf()
        conf.set('s', 'k', '10')
        self.assertEqual(conf.get_int('s', 'k'), 10)


    def test_get_list(self):
        conf = Conf()
        self.assertEqual(conf.get_list('s', 'k'), [])

        conf.set('s', 'k', '1 2 3 4 5 6')
        self.assertEqual(conf.get_list('s', 'k'), ['1', '2', '3', '4', '5', '6'])

        conf.set('s', 'k', 'one two three')
        self.assertEqual(conf.get_list('s', 'k'), ['one', 'two', 'three'])


    def test_get_dict(self):
        conf = Conf()
        self.assertEqual(conf.get_dict('s', 'k'), {})

        conf.set('s', 'k', 'k1:v1;k2:v2;k3:v3')
        self.assertEqual(conf.get_dict('s', 'k'), {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'})


    def test_track_property(self):
        track = Track()
        track.name = 'name'
        self.assertEqual(track.name, 'name')
        self.assertEqual(track['name'], 'name')


    def test_get_hostname(self):
        conf = Conf()
        conf.set('config', 'ingest', None)
        conf.set('basic', 'admin', 'True')
        self.assertEqual('GCMobile-' + socket.gethostname(), conf.get_hostname())
        self.assertEqual(1, len(conf.get_tracks_in_mh_dict()))
        self.assertEqual({'capture.device.names': 'defaults'}, conf.get_tracks_in_mh_dict())
        conf.set('basic', 'admin', 'False')
        self.assertEqual('GC-' + socket.gethostname(), conf.get_hostname())


    def test_active_tag_default_profile(self):
        conf_file = get_resource('conf/conf_active.ini')
        dist_file = get_resource('conf/conf-dist.ini')
        conf = Conf(conf_file, dist_file)

        profile = conf.get_current_profile()

        self.assertEqual(1, len(profile.tracks))
Beispiel #51
0
 def setUp(self):
     conf_file = get_resource('conf/conf.ini')
     dist_file = get_resource('conf/conf-dist.ini')
     self.conf = Conf(conf_file,dist_file)