Example #1
0
 def submit(self, task):
     task.submit()
     task._submit()
     task = refresh(task)
     self.assertState(task, 'valid')
     return task
Example #2
0
    def test_transcript_becomes_finished_when_all_phases_finished(self):
        self.setup_transcript('13.33', 2)

        self.transcribe_and_review(0, 'sentence 1')
        self.transcribe_and_review(1, 'sentence 2')
        self.stitch(0, 1, [])
        self.review_stitch(0, 1)

        def lock_and_submit(t):
            t.lock()
            t.prepare()
            t.assign_to(self.user)
            t.present()
            return self.submit(t)
        
        s0, s1 = self.transcript.sentences.all()
        
        # Set boundaries.
        
        self.assertEqual(s0.boundary_state, 'untouched')
        lock_and_submit(self.transcript.boundarytask_set.create(
            is_review=False,
            sentence=s0,
            start='1.00',
            end='2.00',
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.boundary_state, 'edited')

        lock_and_submit(self.transcript.boundarytask_set.create(
            is_review=True,
            sentence=s0,
            start='1.00',
            end='2.00',
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.boundary_state, 'reviewed')

        self.assertEqual(s1.boundary_state, 'untouched')
        lock_and_submit(self.transcript.boundarytask_set.create(
            is_review=False,
            sentence=s1,
            start='6.00',
            end='7.00',
        ))
        s1 = refresh(s1)
        self.assertEqual(s1.boundary_state, 'edited')

        lock_and_submit(self.transcript.boundarytask_set.create(
            is_review=True,
            sentence=s1,
            start='6.00',
            end='7.00',
        ))
        s1 = refresh(s1)
        self.assertEqual(s1.boundary_state, 'reviewed')

        # Clean.
        
        self.assertEqual(s0.clean_state, 'untouched')
        lock_and_submit(self.transcript.cleantask_set.create(
            is_review=False,
            sentence=s0,
            text=s0.text,
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.clean_state, 'edited')

        lock_and_submit(self.transcript.cleantask_set.create(
            is_review=True,
            sentence=s0,
            text=s0.text,
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.clean_state, 'reviewed')

        self.assertEqual(s1.clean_state, 'untouched')
        lock_and_submit(self.transcript.cleantask_set.create(
            is_review=False,
            sentence=s1,
            text=s1.text,
        ))
        s1 = refresh(s1)
        self.assertEqual(s1.clean_state, 'edited')

        lock_and_submit(self.transcript.cleantask_set.create(
            is_review=True,
            sentence=s1,
            text=s1.text,
        ))
        s1 = refresh(s1)
        self.assertEqual(s1.clean_state, 'reviewed')

        # Speaker.
        
        self.assertEqual(s0.speaker_state, 'untouched')
        lock_and_submit(self.transcript.speakertask_set.create(
            is_review=False,
            sentence=s0,
            new_name='speaker 1',
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.speaker_state, 'edited')

        lock_and_submit(self.transcript.speakertask_set.create(
            is_review=True,
            sentence=s0,
            speaker=s0.latest_speaker,
        ))
        s0 = refresh(s0)
        self.assertEqual(s0.speaker_state, 'reviewed')

        self.assertEqual(s1.speaker_state, 'untouched')
        lock_and_submit(self.transcript.speakertask_set.create(
            is_review=False,
            sentence=s1,
            new_name='speaker 2',
        ))
        s1 = refresh(s1)
        self.assertEqual(s1.speaker_state, 'edited')

        self.transcript = refresh(self.transcript)
        self.assertState(self.transcript, 'unfinished')

        lock_and_submit(self.transcript.speakertask_set.create(
            is_review=True,
            sentence=s1,
            speaker=s1.latest_speaker,
        ))

        self.transcript = refresh(self.transcript)
        self.assertState(self.transcript, 'finished')