示例#1
0
    def setUpClass(cls):
        super(TestCaseSubmittable, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()

        cls.video_pg = video_page.VideoPage(cls)
        cls.video_language_pg = video_language_page.VideoLanguagePage(cls)

        cls.user = UserFactory.create(username='******')
        cls.create_modal = dialogs.CreateLanguageSelection(cls)
        cls.sub_editor = subtitle_editor.SubtitleEditor(cls)
        cls.unisubs_menu = unisubs_menu.UnisubsMenu(cls)
        td = {'url': ('http://qa.pculture.org/amara_tests/' 'Birds_short.mp4')}
        cls.test_video = cls.data_utils.create_video(**td)
        cls.video_pg.open_video_page(cls.test_video.video_id)
        cls.video_pg.log_in(cls.user.username, 'password')
        cls.video_pg.set_skiphowto()

        #Open the video page and sync the first 3 subs
        cls.video_pg.add_subtitles()
        cls.create_modal.create_original_subs('English', 'English')

        cls.logger.info('typing subs')
        cls.typed_subs = cls.sub_editor.type_subs()
        cls.sub_editor.continue_to_next_step()
        cls.logger.info('syncing subs')
        cls.sub_editor.sync_subs(len(cls.typed_subs) + 2)
        cls.timing_list = cls.sub_editor.sub_timings()
        cls.sub_editor.save_and_exit()
示例#2
0
    def test_url__delete_last(self):
        """Can not delete the last (only) url.  

        If this is the only URL for a video, the request will fail. 
        A video must have at least one URL.  
        """
        video_id = self.test_video.video_id
        expected_url = self.test_video.get_video_url()
        #Get a list of the current urls
        url_part = 'videos/%s/urls/' % video_id
        status, response = self.data_utils.api_get_request(self.user, url_part)

        url_objects = response['objects']
        id_list = []
        for url in url_objects:
            id_list.append(url['id'])
        for url_id in sorted(id_list, reverse=True):
            url_part = 'videos/%s/urls/' % url_id
            update_url = 'videos/{0}/urls/{1}/'.format(video_id, url_id)
            status, response = self.data_utils.delete_api_request(
                self.user, update_url)

        #Open the video page on the ui - for the verification screenshot
        video_pg = video_page.VideoPage(self)
        video_pg.open_video_page(video_id)
        self.assertEqual(expected_url, self.test_video.get_video_url())
示例#3
0
    def setUp(self):
        super(TestCaseIncomplete, self).setUp()
        self.data_utils = data_helpers.DataHelpers()
        self.video_pg = video_page.VideoPage(self)
        self.user = UserFactory.create(username='******')
        self.create_modal = dialogs.CreateLanguageSelection(self)
        self.sub_editor = subtitle_editor.SubtitleEditor(self)
        self.unisubs_menu = unisubs_menu.UnisubsMenu(self)
        td = {
            'url': ('http://qa.pculture.org/amara_tests/'
                    'Birds_short.webmsd.webm')
        }

        self.test_video = self.data_utils.create_video(**td)
        self.video_pg.open_video_page(self.test_video.video_id)
        self.video_pg.log_in(self.user.username, 'password')
        self.video_pg.set_skiphowto()

        #Open the video page and sync the first 3 subs
        self.video_pg.add_subtitles()
        self.create_modal.create_original_subs('English', 'English')

        self.logger.info('typing subs')
        self.typed_subs = self.sub_editor.type_subs()
        self.sub_editor.continue_to_next_step()

        self.logger.info('syncing subs')
        self.sub_editor.sync_subs(len(self.typed_subs) + 2)
        self.timing_list = self.sub_editor.sub_timings()
        self.sub_editor.continue_to_next_step()
        self.logger.info('continue to description screen')
        self.sub_editor.continue_to_next_step()
        self.logger.info('continue to review screen')
        self.sub_editor.continue_to_next_step()
示例#4
0
    def setUpClass(cls):
        super(TestCaseLeftSide, cls).setUpClass()
        fixt_data = [
            'apps/webdriver_testing/fixtures/editor_auth.json',
            'apps/webdriver_testing/fixtures/editor_videos.json',
            'apps/webdriver_testing/fixtures/editor_subtitles.json'
        ]
        for f in fixt_data:
            management.call_command('loaddata', f, verbosity=0)

        cls.logger.info("""Default Test Data loaded from fixtures

                        English, source primary v2 -> v6
                                 v1 -> deleted

                        Chinese v1 -> v3
                                v3 {"zh-cn": 2, "en": 6}

                        Danish v1 --> v4
                               v4 {"en": 5, "da": 3}
                               
                        Swedish v1 --> v3 FORKED
                                v3 {"sv": 2}
                                v1 --> private

                        Turkish (tr) v1 incomplete {"en": 5}
                       """)
        cls.editor_pg = editor_page.EditorPage(cls)
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.user = UserFactory.create()
        cls.video_pg.open_page('auth/login/', alert_check=True)
        cls.video_pg.log_in(cls.user.username, 'password')
示例#5
0
    def test_url__put_primary(self):
        """Verify video urls for a particular video are listed.

           PUT /api2/partners/videos/[video-id]/urls/[url-id]/
        """
        #Post an additional url to the video
        video_id = self.test_video.video_id
        video_url = self.test_video.get_video_url()
        url_data = {'url': 'http://unisubs.example.com/newurl.mp4'}
        url_part = 'videos/%s/urls/' % video_id
        status, response = self.data_utils.post_api_request(
            self.user, url_part, url_data)

        #Put an updated url on the video and set it as primary
        put_url = 'videos/{0}/urls/{1}/'.format(video_id, response['id'])
        put_data = {
            'url': 'http://unisubs.example.com/newerurl.mp4',
            'primary': True
        }
        status, response = self.data_utils.put_api_request(
            self.user, put_url, put_data)

        self.assertEqual('http://unisubs.example.com/newerurl.mp4',
                         response['url'])
        video_pg = video_page.VideoPage(self)
        video_pg.open_video_page(video_id)
        self.assertEqual('http://unisubs.example.com/newerurl.mp4',
                         self.test_video.get_video_url())
示例#6
0
    def setUpClass(cls):
        super(TestCaseViewSubtitles, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.user = UserFactory.create()
        cls.owner = UserFactory.create()
        cls.basic_team = TeamMemberFactory.create(
            team__workflow_enabled=False,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            user=cls.owner,
        ).team

        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            team__task_assign_policy=10,  #any team
            user=cls.owner,
        ).team
        cls.workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,  # manager
            review_allowed=10,  # peer
        )
        cls.contributor = TeamContributorMemberFactory(team=cls.team).user
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
        cls.rev1 = os.path.join(cls.subs_dir, 'Timed_text.en.srt')
        cls.rev2 = os.path.join(cls.subs_dir, 'Timed_text.rev2.en.srt')
        de = os.path.join(cls.subs_dir, 'Timed_text.rev3.en.srt')

        cls.sv = os.path.join(cls.subs_dir, 'Timed_text.sv.dfxp')

        #Create en source language 2 revisions - approved.
        cls.video, cls.tv = cls._add_team_video()
        cls._upload_subtitles(cls.video,
                              'en',
                              cls.rev1,
                              cls.contributor,
                              complete=False)
        cls._upload_subtitles(cls.video, 'en', cls.rev2, cls.contributor)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.owner)
        cls.data_utils.complete_approve_task(cls.tv, 20, cls.owner)

        #Add sv translation, reviewed
        cls._upload_translation(cls.video, 'sv', cls.sv, cls.contributor)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.owner)

        #Add de translation complete waiting review
        cls._upload_translation(cls.video, 'de', cls.sv, cls.contributor)

        #Add ru translation, incomplete.
        cls._upload_translation(cls.video,
                                'ru',
                                cls.sv,
                                cls.contributor,
                                complete=False)
示例#7
0
    def setUpClass(cls):
        super(TestCaseRollbackRevision, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.diffing_pg = diffing_page.DiffingPage(cls)
        cls.video_pg = video_page.VideoPage(cls)
        cls.user = UserFactory.create()

        cls.owner = UserFactory.create()
        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            team__task_assign_policy=10,  #any team
            user=cls.owner,
        ).team
        cls.team_workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,  # manager
            review_allowed=10,  # peer
        )
        lang_list = ['en', 'ru', 'pt-br', 'de', 'sv']
        for language in lang_list:
            TeamLangPrefFactory.create(team=cls.team,
                                       language_code=language,
                                       preferred=True)

        cls.admin = TeamAdminMemberFactory(team=cls.team).user
        cls.contributor = TeamMemberFactory(team=cls.team).user
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
示例#8
0
 def setUpClass(cls):
     super(TestCaseRevisionNotifications, cls).setUpClass()
     cls.data_utils = data_helpers.DataHelpers()
     cls.user = UserFactory.create()
     cls.video_pg = video_page.VideoPage(cls)
     cls.diffing_pg = diffing_page.DiffingPage(cls)
     cls.video_language_pg = video_language_page.VideoLanguagePage(cls)
     cls.subs_path = os.path.dirname(os.path.abspath(__file__))
示例#9
0
 def setUpClass(cls):
     super(TestCaseRevisionEdits, cls).setUpClass()
     cls.data_utils = data_helpers.DataHelpers()
     cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
     cls.video_pg = video_page.VideoPage(cls)
     cls.user1 = UserFactory.create()
     cls.user2 = UserFactory.create()
     cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                 'subtitle_data')
示例#10
0
    def setUpClass(cls):
        super(TestCaseSubtitles, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.menu = unisubs_menu.UnisubsMenu(cls)

        cls.user = UserFactory.create()
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_language_pg = video_language_page.VideoLanguagePage(cls)
        cls.subs_data_dir = os.path.join(os.getcwd(), 'apps',
                                         'webdriver_testing', 'subtitle_data')
    def setUpClass(cls):
        super(TestCaseViewSubtitles, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.menu = unisubs_menu.UnisubsMenu(cls)

        cls.user = UserFactory.create()
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_language_pg = video_language_page.VideoLanguagePage(cls)
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
        cls.video = VideoUrlFactory().video

        #Upload original language de
        complete = True
        data = {
            'language_code': 'de',
            'video': cls.video.pk,
            'primary_audio_language_code': 'de',
            'draft': open(os.path.join(cls.subs_dir, 'Timed_text.en.srt')),
            'is_complete': complete,
            'complete': int(complete)
        }
        user_auth = dict(username=cls.user.username, password='******')
        cls.data_utils.upload_subs(cls.video, data, user_auth)
        #Upload sv, translated from de, complete
        data = {
            'language_code': 'sv',
            'video': cls.video.pk,
            'translated_from': 'de',
            'draft': open(os.path.join(cls.subs_dir, 'Timed_text.sv.dfxp')),
            'is_complete': complete,
            'complete': int(complete)
        }
        cls.data_utils.upload_subs(cls.video, data, user_auth)
        complete = False
        #Upload ar, translated from de, incomplete
        data = {
            'language_code': 'ar',
            'video': cls.video.pk,
            'draft': open(os.path.join(cls.subs_dir, 'Timed_text.ar.xml')),
            'is_complete': complete,
            'complete': int(complete)
        }
        cls.data_utils.upload_subs(cls.video, data, user_auth)
        #Upload hu, translated from sv, incomplete
        data = {
            'language_code': 'hu',
            'video': cls.video.pk,
            'translated_from': 'sv',
            'draft': open(os.path.join(cls.subs_dir, 'Timed_text.hu.ssa')),
            'is_complete': complete,
            'complete': int(complete)
        }
        cls.data_utils.upload_subs(cls.video, data, user_auth)
        cls.video_pg.open_video_page(cls.video.video_id)
    def setUpClass(cls):
        super(TestCaseEntryExit, cls).setUpClass()
        fixt_data = [
            'apps/webdriver_testing/fixtures/editor_auth.json',
            'apps/webdriver_testing/fixtures/editor_videos.json',
            'apps/webdriver_testing/fixtures/editor_subtitles.json'
        ]
        for f in fixt_data:
            management.call_command('loaddata', f, verbosity=0)
        cls.logger.info("""Default Test Data - loaded from fixtures

                        English, source primary v2 -> v6
                                 v1 -> deleted

                        Chinese v1 -> v3
                                v3 {"zh-cn": 2, "en": 6}

                        Danish v1 --> v4
                               v4 {"en": 5, "da": 3}
                               
                        Swedish v1 --> v3 FORKED
                                v3 {"sv": 2}
                                v1 --> private

                        Turkish (tr) v1 incomplete {"en": 5}
                       """)

        cls.create_modal = dialogs.CreateLanguageSelection(cls)
        cls.sub_editor = subtitle_editor.SubtitleEditor(cls)
        cls.unisubs_menu = unisubs_menu.UnisubsMenu(cls)
        cls.editor_pg = editor_page.EditorPage(cls)
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.tasks_tab = TasksTab(cls)

        cls.user = UserFactory.create()
        cls.video_pg.open_page('auth/login/')
        cls.video_pg.log_in(cls.user.username, 'password')

        #Create a workflow enabled team to check review/approve dialog switching.
        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            team__task_assign_policy=10,  #any team
            user=cls.user,
        ).team
        cls.workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,  # manager
            review_allowed=10,  # peer
        )
        cls.user = UserFactory.create()
示例#13
0
 def setUpClass(cls):
     super(TestCaseTimedText, cls).setUpClass()
     cls.user = UserFactory.create(username='******')
     cls.video_pg = video_page.VideoPage(cls)
     cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
     cls.test_video = VideoUrlFactory().video
     cls.subs_data_dir = os.path.join(os.getcwd(), 'apps',
                                      'webdriver_testing', 'subtitle_data')
     cls.video_pg.open_video_page(cls.test_video.video_id)
     cls.video_pg.log_in(cls.user.username, 'password')
     cls.video_pg.set_skiphowto()
    def setUpClass(cls):
        super(TestCaseUploadTranslation, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.user = UserFactory.create(username='******')
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_language_pg = video_language_page.VideoLanguagePage(cls)

        cls.subs_data_dir = os.path.join(os.getcwd(), 'apps',
                                         'webdriver_testing', 'subtitle_data')
        cls.video_pg.open_page('videos/create/')
        cls.video_pg.log_in(cls.user.username, 'password')
示例#15
0
 def setUpClass(cls):
     super(TestCaseFollowing, cls).setUpClass()
     cls.data_utils = data_helpers.DataHelpers()
     cls.user = UserFactory.create()
     cls.video_pg = video_page.VideoPage(cls)
     cls.video_language_pg = video_language_page.VideoLanguagePage(cls)
     cls.create_pg = create_page.CreatePage(cls)
     cls.create_pg.open_create_page()
     cls.video = cls.data_utils.create_video_with_subs()
     cls.subs_data_dir = os.path.join(os.getcwd(), 'apps', 
         'webdriver_testing', 'subtitle_data')
     cls.create_pg.open_create_page()
示例#16
0
    def test_list(self):
        """Verify video urls for a particular video are listed.

        GET /api2/partners/videos/[video-id]/urls/
        """
        video_id = self.test_video.video_id
        video_url = self.test_video.get_video_url()
        url_part = 'videos/%s/urls/' % video_id
        status, response = self.data_utils.api_get_request(self.user, url_part)
        video_pg = video_page.VideoPage(self)
        video_pg.open_video_page(video_id)

        self.assertEqual(video_url, response['objects'][0]['url'])
示例#17
0
    def setUpClass(cls):
        super(TestCaseNoWorkflow, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.video_pg = video_page.VideoPage(cls)

        cls.user = UserFactory.create()
        cls.owner = UserFactory.create()
        cls.team = TeamMemberFactory.create(
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            user=cls.owner,
        ).team
        cls.admin = TeamAdminMemberFactory(team=cls.team).user
        cls.contributor = TeamMemberFactory(team=cls.team).user
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
示例#18
0
    def test_url__post(self):
        """Add an additional new url.

           POST /api2/partners/videos/[video-id]/urls/
        """
        video_id = self.test_video.video_id
        video_url = self.test_video.get_video_url()
        url_data = {'url': 'http://unisubs.example.com/newurl.mp4'}
        url_part = 'videos/%s/urls/' % video_id
        status, response = self.data_utils.post_api_request(
            self.user, url_part, url_data)

        vid_url = 'videos/%s' % video_id
        status, response = self.data_utils.api_get_request(self.user, vid_url)
        video_pg = video_page.VideoPage(self)
        video_pg.open_video_page(video_id)

        self.assertIn(video_url, response['all_urls'], response)
示例#19
0
    def setUpClass(cls):
        super(TestCaseDraftVideos, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.menu = unisubs_menu.UnisubsMenu(cls)
        cls.create_modal = dialogs.CreateLanguageSelection(cls)

        cls.user = UserFactory(username='******', is_partner=True)
        cls.data_utils.create_user_api_key(cls.user)
        #Add a team with workflows, tasks and preferred languages
        cls.logger.info('setup: Create a team with tasks enabled')
        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__subtitle_policy=20,
            team__translate_policy=20,
            user=cls.user,
        ).team
        cls.team_workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,
            review_allowed=10,
        )
        cls.member = TeamContributorMemberFactory.create(
            team=cls.team, user=UserFactory(username='******')).user
        cls.nonmember = UserFactory()

        #Add video to team with draft subtitles
        cls.logger.info('Setup: Add video to team with draft subs.')
        cls.draft = TeamVideoFactory.create(
            team=cls.team,
            video=cls.data_utils.create_video(),
            added_by=cls.user).video
        cls.data_utils.upload_subs(cls.draft,
                                   data=None,
                                   user=dict(username=cls.user.username,
                                             password='******'))

        cls.video_pg.open_video_page(cls.draft.video_id)
        cls.video_pg.set_skiphowto()
示例#20
0
 def setUp(self):
     super(TestCaseTranscribing, self).setUp()
     self.data_utils = data_helpers.DataHelpers()
     td = {
         'url': ('http://qa.pculture.org/amara_tests/'
                 'Birds_short.webmsd.webm')
     }
     self.test_video = self.data_utils.create_video(**td)
     self.video_pg = video_page.VideoPage(self)
     self.user = UserFactory.create()
     self.video_pg.open_video_page(self.test_video.video_id)
     self.video_pg.log_in(self.user.username, 'password')
     self.video_pg.set_skiphowto()
     self.create_modal = dialogs.CreateLanguageSelection(self)
     self.sub_editor = subtitle_editor.SubtitleEditor(self)
     self.unisubs_menu = unisubs_menu.UnisubsMenu(self)
     self.video_pg.log_in(self.user.username, 'password')
     self.video_pg.add_subtitles()
     self.create_modal.create_original_subs('English', 'English')
     self.typed_subs = self.sub_editor.type_subs()
示例#21
0
    def setUp(self):
        super(TestCaseSyncBrowserError, self).setUp()
        self.data_utils = data_helpers.DataHelpers()
        self.user = UserFactory.create(username='******')
        self.create_modal = dialogs.CreateLanguageSelection(self)
        self.sub_editor = subtitle_editor.SubtitleEditor(self)
        self.unisubs_menu = unisubs_menu.UnisubsMenu(self)
        self.video_pg = video_page.VideoPage(self)
        self.video_language_pg = video_language_page.VideoLanguagePage(self)

        td = {'url': ('http://qa.pculture.org/amara_tests/' 'Birds_short.mp4')}
        self.test_video = self.data_utils.create_video(**td)
        self.video_pg.open_video_page(self.test_video.video_id)
        self.video_pg.log_in(self.user.username, 'password')
        self.video_pg.set_skiphowto()
        #Open the video page and sync the first 3 subs
        self.video_pg.add_subtitles()
        self.create_modal.create_original_subs('English', 'English')
        self.typed_subs = self.sub_editor.type_subs()
        self.sub_editor.continue_to_next_step()
        num_synced_subs = 3
        self.sub_editor.sync_subs(num_synced_subs)
示例#22
0
    def setUpClass(cls):
        super(TestCaseCenter, cls).setUpClass()
        fixt_data = [
            'apps/webdriver_testing/fixtures/editor_auth.json',
            'apps/webdriver_testing/fixtures/editor_videos.json',
            'apps/webdriver_testing/fixtures/editor_subtitles.json'
        ]
        for f in fixt_data:
            management.call_command('loaddata', f, verbosity=0)

        cls.logger.info("""Default Test Data

                        video[0]:
                         English, source primary v2 -> v6
                                  v1 -> deleted

                         Chinese v1 -> v3
                                 v3 {"zh-cn": 2, "en": 6}

                         Danish v1 --> v4
                                v4 {"en": 5, "da": 3}
                               
                         Swedish v1 --> v3 FORKED
                                 v3 {"sv": 2}
                                 v1 --> private

                         Turkish (tr) v1 incomplete {"en": 5}
                       video[1]: No subs - about amara video
                       video[2]: No subs youtube
                       video[3]: en original 1 version complete.
                       video[4]: nl unsynced, not original
                       """)
        cls.editor_pg = editor_page.EditorPage(cls)
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.user = UserFactory.create()
        cls.video_pg.open_page('auth/login/')
        cls.video_pg.log_in(cls.user.username, 'password')
示例#23
0
    def setUpClass(cls):
        super(TestCaseTranscribe, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.admin_video_pg = edit_video_page.EditVideoPage(cls)
        cls.tasks_tab = TasksTab(cls)
        cls.owner = UserFactory.create(username='******')
        cls.superuser = UserFactory.create(is_staff=True, is_superuser=True)
        cls.transcribe_team = TeamMemberFactory.create(
                       user = cls.owner,
                       team__slug = 'ted-transcribe',
                       team__workflow_enabled=True,
                       team__name = 'TED Transcribe').team
                      
        cls.transcribe_project = TeamProjectFactory.create(
                           team=cls.transcribe_team,
                           name='TedTalks',
                           slug='tedtalks')

        WorkflowFactory(team = cls.transcribe_team,
                                            autocreate_subtitle=True,
                                            autocreate_translate=False,
                                            approve_allowed = 20,
                                            review_allowed = 10,
                                           )

        cls.member = TeamAdminMemberFactory.create(
                team = cls.transcribe_team,
                )
        entries = [ { 
                     'ted_talkid': 1800,
                     'ted_duration': '00:14:17',
                     'summary': 'Stuff about the video',
                     'ted_speakername': 'Eleanor Longden',
                     'title': 'The voices in my head',
                     'links': [  {
                                'rel': 'enclosure',
                                'href': 'http://unisubs.example.com/video1800.mp4',
                                'hreflang': 'en',
                               }
                              ], 
                     'updated_parsed': time.localtime(10000),
                     },
                   { 
                     'ted_talkid': 1801,
                     'ted_duration': '00:12:17',
                     'summary': 'Stuff about the video',
                     'title': 'No speaker name',
                     'links': [  {
                                'rel': 'enclosure',
                                'href': 'http://unisubs.example.com/video1801.mp4',
                                'hreflang': 'en',
                               }
                              ], 
                     'updated_parsed': time.localtime(10000)
                  }
                ]
        for entry in entries:
            tasks._parse_entry(cls.transcribe_team, entry, 
                               cls.member, cls.transcribe_project)

        cls.video, _ = Video.get_or_create_for_url(
                       'http://unisubs.example.com/video1800.mp4')
        cls.video_pg.open_video_page(cls.video.video_id)
        cls.video_pg.log_in('TED', 'password')
示例#24
0
    def setUpClass(cls):
        super(TestCaseUnpublishLast, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.create_modal = dialogs.CreateLanguageSelection(cls)
        cls.sub_editor = subtitle_editor.SubtitleEditor(cls)
        cls.tasks_tab = TasksTab(cls)
        cls.video_pg = video_page.VideoPage(cls)
        cls.watch_pg = watch_page.WatchPage(cls)
        cls.user = UserFactory.create()
        cls.owner = UserFactory.create()
        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            team__task_assign_policy=10,  #any team
            user=cls.owner,
        ).team
        cls.workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,  # manager
            review_allowed=10,  # peer
        )
        lang_list = ['en', 'ru', 'pt-br', 'de', 'sv']
        for language in lang_list:
            TeamLangPrefFactory.create(team=cls.team,
                                       language_code=language,
                                       preferred=True)

        cls.admin = TeamAdminMemberFactory(team=cls.team).user
        cls.contributor = TeamMemberFactory(team=cls.team).user
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
        cls.video, cls.tv = cls.create_source_with_multiple_revisions()
        translation = os.path.join(cls.subs_dir, 'Timed_text.sv.dfxp')

        #Upload subs - sv - incomplete, de - reviewed, ru - complete needs review
        cls.logger.info("""Uploading subs to get tasks in various stages: """)
        cls.logger.info("""
                         sv: translation started, incomplete
                         ru: translation submitted, needs review
                         de: translation reviewed, needs approve
                         pt-br: not started
                         """)

        cls._upload_lang(cls.video, translation, 'sv', cls.contributor)
        cls._upload_lang(cls.video,
                         translation,
                         'de',
                         cls.contributor,
                         complete=True)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.admin)
        cls._upload_lang(cls.video,
                         translation,
                         'ru',
                         cls.contributor,
                         complete=True)

        cls.logger.info('Setting visibility override on v3 to private')
        cls.en = cls.video.subtitle_language('en')
        en_v3 = cls.en.get_tip(full=True)
        en_v3.visibility_override = 'private'
        en_v3.save()
        cls.tasks_tab.open_page('teams/%s/tasks/?lang=all&assignee=anyone' %
                                cls.team.slug)
示例#25
0
    def setUpClass(cls):
        super(TestCaseTED, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_pg = video_page.VideoPage(cls)
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.profile_dash_pg = profile_dash_page.ProfileDashPage(cls)

        cls.tasks_tab = TasksTab(cls)
        cls.dashboard_tab = DashboardTab(cls)
        cls.videos_tab = VideosTab(cls)

        cls.watch_pg = watch_page.WatchPage(cls)

        cls.logger.info("Create TED teams")
        cls.owner = UserFactory.create(username='******')
        cls.ted_team = TeamMemberFactory.create(
                       user = cls.owner,
                       team__slug = 'ted',
                       team__name = 'TED',
                       team__workflow_enabled=True).team
                      
        cls.ted_project = TeamProjectFactory.create(
                           team=cls.ted_team,
                           name='TedTalks',
                           slug='tedtalks')

        WorkflowFactory(team = cls.ted_team,
                                            autocreate_subtitle=True,
                                            autocreate_translate=True,
                                            approve_allowed = 20,
                                            review_allowed = 10,
                                           )

        cls.member = TeamAdminMemberFactory.create(
                team = cls.ted_team,
                )

        lang_list = ['en', 'ru', 'pt-br', 'de', 'sv']
        for language in lang_list:
            TeamLangPrefFactory.create(team=cls.ted_team, language_code=language,
                                       preferred=True)

        cls.admin = TeamAdminMemberFactory(team=cls.ted_team).user
        cls.data_utils.create_user_api_key(cls.admin)
        cls.contributor = TeamMemberFactory(team=cls.ted_team).user

        entries = [ { 
                   'ted_talkid': 1806,
                   'ted_duration': '00:09:03',
                   'summary': 'Stuff about the video',
                   'ted_speakername': 'Jinsop Lee',
                   'title': 'TestVideo1',
                   'links': [  {
                                'rel': 'enclosure',
                                'href': 'http://unisubs.example.com/video1806.mp4',
                                'hreflang': 'en',
                               }
                            ], 
                   'updated_parsed': time.localtime(10000)
                  },
                  { 
                     'ted_talkid': 1801,
                     'ted_duration': '00:12:17',
                     'summary': 'Stuff about the video',
                     'title': 'NoSpeakerVideo',
                     'links': [  {
                                'rel': 'enclosure',
                                'href': 'http://unisubs.example.com/video1801.mp4',
                                'hreflang': 'en',
                               }
                              ], 
                     'updated_parsed': time.localtime(10000)
                  }
                ]
        for entry in entries:
            tasks._parse_entry(cls.ted_team, entry, 
                               cls.member, cls.ted_project)


        cls.speaker_video, _ = Video.get_or_create_for_url(
                            'http://unisubs.example.com/video1806.mp4')
        cls.nospeaker_video, _ = Video.get_or_create_for_url(
                            'http://unisubs.example.com/video1801.mp4')

        #Add approved 'en' subs speaker name
        speaker_data =  { 'speaker-name': 'Santa' } 
        cls._create_subs(cls.speaker_video, 'en', complete=True, metadata=speaker_data) 
        cls.data_utils.complete_review_task(cls.speaker_video.get_team_video(),
                                            20, cls.admin)
        cls.data_utils.complete_approve_task(cls.speaker_video.get_team_video(),
                                            20, cls.owner)

        #Add approved 'sv' translation with speaker name
        speaker_data = { 'speaker-name': 'TomTom' }
        cls._create_subs(cls.speaker_video, 'sv', True, metadata=speaker_data, title='sv subs title')
        cls.data_utils.complete_review_task(cls.speaker_video.get_team_video(),
                                            20, cls.admin)
        sv = cls.speaker_video.subtitle_language('sv').get_tip()
        sv.update_metadata( { 'speaker-name': 'Jultomten'} ) 
        cls.data_utils.complete_approve_task(cls.speaker_video.get_team_video(),
                                            20, cls.owner)


        #Add draft 'de' subs reviewed with speaker name
        speaker_data = { 'speaker-name': 'Klaus' }
        cls._create_subs(cls.speaker_video, 'de', True, metadata=speaker_data, title='de subs title')
        cls.data_utils.complete_review_task(cls.speaker_video.get_team_video(),
                                            20, cls.owner)
        #Add ru draft, no speaker name
        cls._create_subs(cls.speaker_video, 'ru')
        management.call_command('update_index', interactive=False)
        cls.dashboard_tab.open_team_page(cls.ted_team.slug)
    def setUpClass(cls):
        super(TestCaseDeletion, cls).setUpClass()
        cls.data_utils = data_helpers.DataHelpers()
        cls.video_lang_pg = video_language_page.VideoLanguagePage(cls)
        cls.video_pg = video_page.VideoPage(cls)
        cls.tasks_tab = TasksTab(cls)
        cls.watch_pg = watch_page.WatchPage(cls)
        cls.sub_editor = subtitle_editor.SubtitleEditor(cls)

        cls.user = UserFactory.create()
        cls.owner = UserFactory.create()
        cls.team = TeamMemberFactory.create(
            team__workflow_enabled=True,
            team__translate_policy=20,  #any team
            team__subtitle_policy=20,  #any team
            team__task_assign_policy=10,  #any team
            user=cls.owner,
        ).team
        cls.workflow = WorkflowFactory(
            team=cls.team,
            autocreate_subtitle=True,
            autocreate_translate=True,
            approve_allowed=10,  # manager
            review_allowed=10,  # peer
        )
        lang_list = ['en', 'ru', 'pt-br', 'de', 'sv']
        for language in lang_list:
            TeamLangPrefFactory.create(team=cls.team,
                                       language_code=language,
                                       preferred=True)

        cls.admin = TeamAdminMemberFactory(team=cls.team).user
        cls.contributor = TeamContributorMemberFactory(team=cls.team).user
        cls.subs_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing',
                                    'subtitle_data')
        cls.rev1 = os.path.join(cls.subs_dir, 'Timed_text.en.srt')
        cls.rev2 = os.path.join(cls.subs_dir, 'Timed_text.rev2.en.srt')

        cls.sv = os.path.join(cls.subs_dir, 'Timed_text.sv.dfxp')
        ru = os.path.join(cls.subs_dir, 'less_lines.ssa')

        cls.logger.info("""
                         Create video with en as primary audio lang.
                            Subtitle, review and approve.
                            Translate to: 
                                sv: reviewed
                                de: complete, needs review
                                ru: incomplete
                         Delete Subtitle Language en + sv and de.
                         """)

        #Create en source language 2 revisions - approved.
        cls.video, cls.tv = cls._add_team_video()
        cls._upload_subtitles(cls.video,
                              'en',
                              cls.rev1,
                              cls.contributor,
                              complete=False)
        cls._upload_subtitles(cls.video, 'en', cls.rev2, cls.contributor)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.admin)
        cls.data_utils.complete_approve_task(cls.tv, 20, cls.admin)

        #Add sv translation, reviewed
        cls._upload_translation(cls.video, 'sv', cls.sv, cls.contributor)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.admin)

        #Add it translation, reviewed
        cls._upload_translation(cls.video, 'it', cls.sv, cls.contributor)
        cls.data_utils.complete_review_task(cls.tv, 20, cls.admin)

        #Add hr translation, needs review
        cls._upload_translation(cls.video, 'hr', cls.sv, cls.contributor)

        #Add de translation complete waiting review
        cls._upload_translation(cls.video, 'de', cls.sv, cls.contributor)

        #Add ru translation, incomplete.
        cls._upload_translation(cls.video,
                                'ru',
                                cls.sv,
                                cls.contributor,
                                complete=False)

        cls.video_lang_pg.open_video_lang_page(cls.video.video_id, 'en')
        cls.video_lang_pg.log_in(cls.owner.username, 'password')
        cls.video_lang_pg.page_refresh()

        #Delete English subtitle language + Swedish and German
        cls.video_lang_pg.delete_subtitle_language(['Swedish', 'German'])
        management.call_command('update_index', interactive=False)
        management.call_command('update_video_metadata')