Ejemplo n.º 1
0
    def test_ical_create_mp(self):
        repo = repository.Repository(self.tmppath)

        events = ical.get_events_from_file_ical(path.join(self.base_dir, 'test.ical'))

        for event in events:
            ical.create_mp(repo, event)

        next = repo.get_next_mediapackage()
        self.assertEqual(next.getDate(), datetime.strptime('3016-04-05 11:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(len(next.getElements()), 2)
        self.assertEqual(len(next.getAttachments()), 1)
        self.assertTrue(next.getAttachment('org.opencastproject.capture.agent.properties'))
        self.assertEqual(len(next.getCatalogs()), 1)

        nexts = repo.get_next_mediapackages()
        self.assertEqual(nexts[0].getDate(), datetime.strptime('3016-04-05 11:00:00', '%Y-%m-%d %H:%M:%S'))
        self.assertEqual(nexts[0].getDuration(), 1000*60*10)
Ejemplo n.º 2
0
    def test_update(self):
        repo = repository.Repository(self.tmppath)

        mp = mediapackage.Mediapackage()
        mp.add(self.track1)
        mp.add(self.track2)
        mp.add(self.catalog)
        mp.metadata_episode["title"] = "Title"

        self.assertRaises(KeyError, repo.update, mp)

        repo.add(mp)
        self.assertEqual(repo.size(), 1)

        mp.metadata_episode["title"] = "new Title"

        repo.update(mp)
        self.assertEqual(repo.size(), 1)
Ejemplo n.º 3
0
    def test_save_system_zip(self):
        mp = mediapackage.Mediapackage()
        mp.add(self.track1,mediapackage.TYPE_TRACK, "presentation/source", "video/mpeg", 532)
        mp.add(self.track2,mediapackage.TYPE_TRACK, "presenter/source", "video/mpeg", 532)
        mp.add(self.catalog,mediapackage.TYPE_CATALOG, "catalog/source","xml")
        tmppath = mkdtemp()
        repo = repository.Repository(tmppath)
        repo.add(mp)
        path_zip = "system.zip"

        serializer.save_system_zip(mp,path_zip)
        zfile = zipfile.ZipFile(path_zip,'r')
        files=zfile.namelist()
        
        for element in mp.getElements():
            self.assertTrue(path.split(element.getURI())[1] in files)
        rmtree(tmppath)
        remove(path_zip)
Ejemplo n.º 4
0
    def test_get_next_and_past_mediapackages(self):
        repo = repository.Repository(self.tmppath)
        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_next = mediapackage.Mediapackage(identifier="4", title='MP#4', date=(now + datetime.timedelta(days=1)))
        repo.add(mp_next)
        mp = mediapackage.Mediapackage(identifier="5", title='MP#5', date=(now + datetime.timedelta(days=30)))
        repo.add(mp)

        self.assertEqual(repo.get_next_mediapackage(), mp_next)
        self.assertEqual(len(repo.get_next_mediapackages()), 2)
        self.assertEqual(len(repo.get_past_mediapackages()), 3)
        self.assertEqual(len(repo.get_past_mediapackages(40)), 1)
Ejemplo n.º 5
0
    def test_add_after_rec_no_manual(self):
        duration = 134
        repo = repository.Repository(self.tmppath)
        mp = mediapackage.Mediapackage()
        repo.add(mp)
        mp.addAttachmentAsString('capture.device.names=name1,name3', name='org.opencastproject.capture.agent.properties', identifier='org.opencastproject.capture.agent.properties')

        mp.manual = False
        #TODO file extension to mimetype???
        bins = [self.__get_tmp_bin('t.avi', {'device': 'test', 'name': 'name1', 'dev': 'dev1', 'mimetype': 'video/mp4', 'flavor': 'presenter' }),
                self.__get_tmp_bin('t.mp4', {'device': 'test', 'name': 'name2', 'dev': 'dev2', 'mimetype': 'video/mp4', 'flavor': 'presentation' })
                ]

        self.assertFalse(mp.manual)        
        repo.add_after_rec(mp, bins, duration)

        self.assertEqual(mp.getDuration(), duration)
        self.assertEqual(len(repo), 1)
        self.assertEqual(len(mp.getTracks()), 1)
Ejemplo n.º 6
0
    def test_repair_inconsistencies(self):
        repo = repository.Repository(self.tmppath)

        mp = mediapackage.Mediapackage()
        mp.status = mediapackage.INGESTED
        mp.setOpStatus("pr0", mediapackage.OP_IDLE)
        mp.setOpStatus("pr1", mediapackage.OP_PENDING)
        mp.setOpStatus("pr2", mediapackage.OP_PROCESSING)
        mp.setOpStatus("pr3", mediapackage.OP_DONE)
        mp.setOpStatus("pr4", mediapackage.OP_FAILED)

        repo.add(mp)
        repo.repair_inconsistencies(mp)

        self.assertEqual(mp.status, mediapackage.RECORDED)
        self.assertEqual(mp.getOpStatus("pr0"), mediapackage.OP_IDLE)
        self.assertEqual(mp.getOpStatus("pr1"), mediapackage.OP_FAILED)
        self.assertEqual(mp.getOpStatus("pr2"), mediapackage.OP_FAILED)
        self.assertEqual(mp.getOpStatus("pr3"), mediapackage.OP_DONE)
        self.assertEqual(mp.getOpStatus("pr4"), mediapackage.OP_FAILED)
Ejemplo n.º 7
0
 def test_repository(self):
     root = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                         'resources')
     repo = repository.Repository(root)
     self.assertEqual(repo.size(), 1)
Ejemplo n.º 8
0
    def test_big_repository(self):
        root = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',
                            'resources', 'repository')
        repo = repository.Repository(root)
        self.assertEqual(len(repo), 5)
        self.assertEqual(len(repo.list_by_status(mediapackage.FAILED)), 1)

        for (key, mp) in list(repo.items()):
            self.assertTrue(mp.getDuration() >= 0)

        self.assertEqual(
            repo["dae91194-2114-481b-8908-8a8962baf8da"].getIdentifier(),
            "dae91194-2114-481b-8908-8a8962baf8da")

        self.assertFalse(
            repo.get("dae91194-2114-481b-8908-8a8962baf8da").manual)
        self.assertTrue(
            repo.get("dae91194-2114-481b-8908-8a8962baf8db").manual)
        self.assertFalse(
            repo.get("dae91194-2114-481b-8908-8a8962baf8dd").manual)
        self.assertTrue(
            repo.get("dae91194-2114-481b-8908-8a8962baf8de").manual)

        self.assertEqual(
            repo.get("dae91194-2114-481b-8908-8a8962baf8da").status,
            mediapackage.SCHEDULED)
        self.assertEqual(
            repo.get("dae91194-2114-481b-8908-8a8962baf8db").status,
            mediapackage.RECORDING)
        self.assertEqual(
            repo.get("dae91194-2114-481b-8908-8a8962baf8dc").status,
            mediapackage.RECORDED)
        self.assertEqual(
            repo.get("dae91194-2114-481b-8908-8a8962baf8dd").status,
            mediapackage.FAILED)
        self.assertEqual(
            repo.get("dae91194-2114-481b-8908-8a8962baf8de").status,
            mediapackage.RECORDED)

        self.assertEqual(
            len(repo.get("dae91194-2114-481b-8908-8a8962baf8da").operations),
            0)
        self.assertEqual(
            len(repo.get("dae91194-2114-481b-8908-8a8962baf8db").operations),
            0)
        self.assertEqual(
            len(repo.get("dae91194-2114-481b-8908-8a8962baf8dc").operations),
            1)
        self.assertEqual(
            len(repo.get("dae91194-2114-481b-8908-8a8962baf8dd").operations),
            2)
        self.assertEqual(
            len(repo.get("dae91194-2114-481b-8908-8a8962baf8de").operations),
            3)

        mp_duration = repo.get(
            "dae91194-2114-481b-8908-8a8962baf8da").getDuration()
        self.assertEqual(mp_duration, 2106)
        track_duration = repo.get("dae91194-2114-481b-8908-8a8962baf8da"
                                  ).getTrack("track-1").getDuration()
        self.assertEqual(track_duration, 2160)