Exemplo n.º 1
0
    def test_calculation_segment_is_in_the_middle_of_event(self):
        cutter = SegmentCutter('/tmp/')
        scheduler = SegmentScheduler('/tmp/', self.events)
        scheduler.set_date(
            datetime.strptime("2018:10:31_07:03:27", "%Y:%m:%d_%H:%M:%S"))
        segments = []
        segments.append(
            createVideoSegment('/tmp/middle_alegria', '2018:10:31 18:35:00',
                               1353.352))
        segments.append(
            createVideoSegment('/tmp/middle_footwork', '2018:10:31 20:35:00',
                               1353.352))
        segments.append(
            createVideoSegment('/tmp/middle_ritmo', '2018:10:31 21:15:00',
                               1353.352))

        ret = scheduler.calculate(segments)

        for k, value in ret.items():
            #            print (f"Key: {k}")
            for cut in ret[k]:
                pass
#                print ("Got command: " + cutter.run(cut))

        self.assertTrue(len(ret['Alegria']) == 1)
        self.assertTrue(
            ret['Alegria'][0].segment.filePath == '/tmp/middle_alegria')
        self.assertTrue(len(ret['Footwork']) == 1)
        self.assertTrue(
            ret['Footwork'][0].segment.filePath == '/tmp/middle_footwork')
        self.assertTrue(len(ret['Ritmo']) == 1)
        self.assertTrue(
            ret['Ritmo'][0].segment.filePath == '/tmp/middle_ritmo')
Exemplo n.º 2
0
    def test_calculation_segment_is_after_all_events(self):
        cutter = SegmentCutter('/tmp/')
        scheduler = SegmentScheduler('/tmp/', self.events)
        scheduler.set_date(
            datetime.strptime("2018:10:31_07:03:27", "%Y:%m:%d_%H:%M:%S"))
        segments = []
        segments.append(
            createVideoSegment('/tmp/end_alegria_begin_footwork',
                               '2018:10:31 22:48:00', 1353.352))
        ret = scheduler.calculate(segments)

        self.assertTrue(len(ret['Alegria']) == 0)
        self.assertTrue(len(ret['Footwork']) == 0)
        self.assertTrue(len(ret['Ritmo']) == 0)
Exemplo n.º 3
0
    def test_calculation_segment_is_in_the_middle_of_two_events(self):
        cutter = SegmentCutter('/tmp/')
        scheduler = SegmentScheduler('/tmp/', self.events)
        scheduler.set_date(
            datetime.strptime("2018:10:31_07:03:27", "%Y:%m:%d_%H:%M:%S"))
        segments = []
        segments.append(
            createVideoSegment('/tmp/end_alegria_begin_footwork',
                               '2018:10:31 19:55:00', 1353.352))
        ret = scheduler.calculate(segments)

        self.assertTrue(len(ret['Alegria']) == 1)
        self.assertTrue(ret['Alegria'][0].segment.filePath ==
                        '/tmp/end_alegria_begin_footwork')
        #        print("here: " + str(ret['Alegria'][0].segment.getDuration()))
        self.assertTrue(ret['Alegria'][0].cutDuration == timedelta(
            seconds=600))

        self.assertTrue(len(ret['Footwork']) == 1)
        self.assertTrue(ret['Footwork'][0].segment.filePath ==
                        '/tmp/end_alegria_begin_footwork')
        self.assertTrue(ret['Footwork'][0].cutDuration == timedelta(
            seconds=300))
        self.assertTrue(len(ret['Ritmo']) == 0)
Exemplo n.º 4
0
    def test_should_delete(self):
        ParsedArgs = namedtuple(
            'ParsedArgs',
            ['directorySrc', 'directoryDst', 'directoryTmp', 'dryRun'])
        args = ParsedArgs(directorySrc=self.dirSrc,
                          directoryDst=self.dirDst,
                          directoryTmp=self.dirTmp,
                          dryRun=True)
        events = []
        events.append(
            ScheduledEvent(name='Alegria',
                           hour=6,
                           minute=30,
                           second=0,
                           PM=True,
                           duration='1:35:00'))
        events.append(
            ScheduledEvent(name='Footwork',
                           hour=8,
                           minute=00,
                           second=0,
                           PM=True,
                           duration='1:05:00'))
        events.append(
            ScheduledEvent(name='Ritmo',
                           hour=9,
                           minute=00,
                           second=0,
                           PM=True,
                           duration='1:35:00'))

        segments = []

        segments.append(
            createVideoSegment('/mnt/tmp/Footwork_2', '2018:10:31 20:06:00',
                               1353.352))
        segments.append(
            createVideoSegment('/mnt/tmp/Footwork_3', '2018:10:31 20:28:00',
                               1353.352))
        clippedForRitmo = createVideoSegment('/mnt/tmp/Footwork_1',
                                             '2018:10:31 20:55:00', 1353.352)
        segments.append(clippedForRitmo)

        for s in segments:
            self.fs.create_file(s.filePath)

        scheduler = SegmentScheduler(args.directoryTmp, events)
        dt = datetime.strptime("2018:10:31_07:03:27", "%Y:%m:%d_%H:%M:%S")
        scheduler.set_date(dt)
        ret = scheduler.calculate(segments)

        for team, cutList in ret.items():
            for cut in cutList:
                ret = shouldDelete(cut, events, args)
                if cut.segment == clippedForRitmo:
                    print("asserting: Segment must be deleted:" +
                          cut.cutFilePath + " vs " + str(ret))
                    self.assertTrue(ret)
                else:
                    print("asserting: Segment must not be deleted:" +
                          cut.cutFilePath)
                    self.assertFalse(ret)