def setUpClass(cls): super(TestCaseFilterSort, cls).setUpClass() #management.call_command('flush', interactive=False) cls.data_utils = data_helpers.DataHelpers() cls.logger.info("Create team 'video-test' and add 1 video") cls.team_owner = UserFactory.create(is_partner=True) cls.team = TeamMemberFactory.create(user=cls.team_owner).team cls.manager_user = TeamAdminMemberFactory(team=cls.team, user=UserFactory()).user cls.videos_tab = videos_tab.VideosTab(cls) vidurl_data = { 'url': 'http://www.youtube.com/watch?v=WqJineyEszo', 'video__title': 'X Factor Audition - Stop Looking At My Mom Rap', 'type': 'Y' } cls.test_video = cls.data_utils.create_video(**vidurl_data) cls.data_utils.upload_subs(cls.test_video) TeamVideoFactory.create(team=cls.team, video=cls.test_video, added_by=cls.manager_user) cls.data_utils.create_user_api_key(cls.team_owner) videos = cls.data_utils.create_several_team_videos_with_subs( cls.team, cls.manager_user) management.call_command('update_index', interactive=False)
def setUpClass(cls): super(TestCaseTeamProjectResource, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.user = UserFactory.create(username='******', is_partner=True) cls.team_owner = UserFactory.create(username='******') cls.data_utils.create_user_api_key(cls.user) #create an open team with description text and 2 members cls.open_team = TeamMemberFactory.create( team__name="Cool team", team__slug='team-with-projects', team__description='this is the coolest, most creative team ever', user=cls.team_owner, ).team TeamAdminMemberFactory(team=cls.open_team, user=cls.user) #Open to the teams page so you can see what's there. cls.project1 = TeamProjectFactory( team=cls.open_team, name='team project one', slug='team-project-one', description='subtitle project number 1', guidelines='do a good job', workflow_enabled=False) cls.project2 = TeamProjectFactory(team=cls.open_team, name='team project two', workflow_enabled=True) cls.team_pg = ATeamPage(cls) cls.team_pg.open_team_page(cls.open_team.slug)
def setUpClass(cls): super(TestCaseApplications, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.user = UserFactory.create(is_partner=True) cls.data_utils.create_user_api_key(cls.user) cls.joiner = UserFactory.create(username='******') #Create the application only team cls.team = TeamMemberFactory.create( team__name='my application-only team', team__slug='application-only', team__membership_policy=1, user=cls.user).team #Create a user who has a pending application cls.joiner_app = ApplicationFactory.create(team=cls.team, user=cls.joiner, status=0, note='let me in') # Create some additional applications the various status cls.joiners_list = [] for x in range(0, 5): team_joiner = ApplicationFactory.create(team=cls.team, user=UserFactory.create(), status=x, note='let me in, too').user cls.joiners_list.append(team_joiner.username) cls.joiners_list.append(cls.joiner.username) cls.a_team_pg = ATeamPage(cls)
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')
def setUp(self): super(TestCaseAddRemoveEdit, self).setUp() #management.call_command('flush', interactive=False) self.data_utils = data_helpers.DataHelpers() self.logger.info("Create team and add 1 video") self.team_owner = UserFactory.create() self.team = TeamMemberFactory.create(user=self.team_owner).team self.manager_user = TeamAdminMemberFactory( team=self.team, user=UserFactory(username='******')).user self.videos_tab = videos_tab.VideosTab(self) data = { 'url': 'http://www.youtube.com/watch?v=WqJineyEszo', 'video__title': ('X Factor Audition - Stop Looking At My ' 'Mom Rap - Brian Bradley'), 'type': 'Y' } self.test_video = self.data_utils.create_video(**data) self.data_utils.upload_subs(self.test_video) TeamVideoFactory.create(team=self.team, video=self.test_video, added_by=self.manager_user) self.videos_tab.open_videos_tab(self.team.slug)
def setUpClass(cls): super(TestCaseProjectsFilterSort, cls).setUpClass() #management.call_command('flush', interactive=False) cls.data_utils = data_helpers.DataHelpers() cls.videos_tab = videos_tab.VideosTab(cls) cls.team_owner = UserFactory.create() cls.logger.info('setup: Creating team Video Test') cls.team = TeamMemberFactory.create(user=cls.team_owner).team cls.manager_user = TeamAdminMemberFactory(team=cls.team, user=UserFactory()).user cls.logger.info('setup: Adding project one and project two with ' 'workflows enabled') cls.project1 = TeamProjectFactory.create( team=cls.team, workflow_enabled=True, ) cls.project2 = TeamProjectFactory.create(team=cls.team, workflow_enabled=True) data = json.load(open('apps/videos/fixtures/teams-list.json')) videos = _create_videos(data, []) for video in videos: TeamVideoFactory.create(team=cls.team, video=video, added_by=cls.manager_user, project=cls.project2) cls.videos_tab.open_videos_tab(cls.team.slug) cls.videos_tab.log_in(cls.manager_user.username, 'password')
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)
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')
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()
def setUpClass(cls): super(TestCaseActivity, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.user = UserFactory.create(is_partner=True) #create an open team with description text and 2 members cls.open_team = TeamMemberFactory.create( team__name="A1 Waay Cool team", team__slug='a1-waay-cool-team', team__description='this is the coolest, most creative team ever', user=cls.user).team TeamMemberFactory.create(team=cls.open_team, user=UserFactory.create()) TeamVideoFactory.create(team=cls.open_team, added_by=cls.user)
def setUpClass(cls): super(TestCaseTeamsPage, cls).setUpClass() cls.COOL_TEAM_NAME = "A1 Waay Cool team" #CREATE A USER cls.cool_user = UserFactory.create(username='******', password='******') cls.logger.info("creating some teams for testing") #create 5 open teams for x in range(5): TeamMemberFactory.create(team__name='my team ' + str(x), team__slug='my-team-' + str(x), user__username='******' + str(x), user__password='******') #create an open team with description text and 2 members cls.team = TeamMemberFactory.create( team__name="A1 Waay Cool team", team__slug='a1-waay-cool-team', team__description='this is the coolest, most creative team ever', user__username='******', user__password='******').team TeamMemberFactory.create(team=cls.team, user=cls.cool_user) TeamVideoFactory.create(team=cls.team, added_by=cls.cool_user) #create an application team with 3 members and 5 videos cls.app_team = TeamMemberFactory.create( team__name='the application-only team', team__slug='the-application-only-team', team__membership_policy=1, user__username='******', user__password='******').team TeamMemberFactory.create(team=cls.app_team, user=UserFactory.create()) TeamMemberFactory.create(team=cls.app_team, user=cls.cool_user) for x in range(5): TeamVideoFactory.create(team=cls.app_team, added_by=cls.cool_user) #create 1 private team cls.priv_team = TeamMemberFactory.create( team__name='my own private idaho ', team__slug='private-idaho', team__membership_policy=1, team__is_visible=False, user__username='******', user__password='******').team cls.teams_dir_pg = TeamsDirPage(cls) cls.a_team_pg = ATeamPage(cls)
def setUpClass(cls): super(TestCaseTeamsResource, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.user = UserFactory.create(is_partner=True) cls.private_user = UserFactory.create(username='******') cls.data_utils.create_user_api_key(cls.user) cls.logger.info('setup: creating team data') #create 3 open teams for x in range(3): TeamMemberFactory.create( team__name='my team ' + str(x), team__slug='my-team-' + str(x), user__username='******' + str(x), ) #create an open team with description text and 2 members cls.open_team = TeamMemberFactory.create( team__name="A1 Waay Cool team", team__slug='a1-waay-cool-team', team__description='this is the coolest, most creative team ever', user__username='******', ).team TeamMemberFactory.create(team=cls.open_team, user=cls.user) TeamVideoFactory.create(team=cls.open_team, added_by=cls.user) #create an application team with 3 members and 5 videos app_team = TeamMemberFactory.create( team__name='the application-only team', team__slug='the-application-only-team', team__membership_policy=1, user__username='******', ).team TeamMemberFactory.create(team=app_team, user=UserFactory.create()) TeamMemberFactory.create(team=app_team, user=cls.user) for x in range(5): TeamVideoFactory.create(team=app_team, added_by=cls.user) #create 1 private team cls.priv_team = TeamMemberFactory.create( team__name='my own private idaho', team__slug='private-idaho', team__membership_policy=1, team__is_visible=False, user=cls.private_user).team #Open to the teams page so you can see what's there. cls.teams_dir_pg = TeamsDirPage(cls) cls.teams_dir_pg.open_teams_page()
def test_notify_contributor(self): """Subtitle contributor gets an email when new revision added. """ video = VideoUrlFactory().video self.video_pg.open_video_page(video.video_id) self.video_pg.log_in(self.user.username, 'password') rev1 = os.path.join(self.subs_path, 'rev1.dfxp') self.video_pg.open_video_page(video.video_id) self.video_pg.upload_subtitles('English', rev1) sl = video.subtitle_language('en') v1 = sl.get_tip().id sl.clear_tip_cache() user2 = UserFactory.create() self.video_pg.log_in(user2.username, 'password') rev2 = os.path.join(self.subs_path, 'rev2.dfxp') self.video_pg.open_video_page(video.video_id) mail.outbox = [] self.video_pg.upload_subtitles('English', rev2) email_to = mail.outbox[-1].to msg = str(mail.outbox[-1].message()) #self.logger.info("MESSAGE: %s" % msg) v2 = sl.get_tip().id diffing_page = ('videos/diffing/{0}/{1}/'.format(v2, v1)) self.video_pg.open_page(diffing_page) self.assertIn(diffing_page, msg) self.assertIn(self.user.email, email_to)
def test_notify__video_follower_revisions(self): """Video follower gets an email when new revision added. """ video = VideoUrlFactory().video follower = UserFactory.create(email='*****@*****.**') self.video_pg.open_video_page(video.video_id) self.video_pg.log_in(follower.username, 'password') self.video_pg.page_refresh() self.video_pg.toggle_follow() mail.outbox = [] self.video_pg.open_video_page(video.video_id) self.video_pg.log_in(self.user.username, 'password') self.video_pg.page_refresh() rev1 = os.path.join(self.subs_path, 'rev1.dfxp') self.video_pg.open_video_page(video.video_id) self.video_pg.upload_subtitles('English', rev1) rev2 = os.path.join(self.subs_path, 'rev2.dfxp') self.video_pg.open_video_page(video.video_id) self.video_pg.upload_subtitles('English', rev2) self.video_pg.page_refresh() email_to = mail.outbox[-1].to msg = str(mail.outbox[-1].message()) self.logger.info("MESSAGE: %s" % msg) self.assertIn(follower.email, email_to)
def test_member__create_contributor(self): """Verify video urls for a particular video are listed. POST /api2/partners/teams/[team-slug]/members/ """ #create a second team with 'second_member' as a member. second_user = UserFactory.create(username='******') second_team = TeamMemberFactory.create( team__name="normal team", team__slug='normal-team', team__description='this is the junior team', user=self.user, ).team TeamContributorMemberFactory.create(team=second_team, user=second_user) user_details = {"username": second_user.username, "role": "admin"} url_part = 'teams/%s/members/' % self.open_team.slug status, response = self.data_utils.post_api_request( self.user, url_part, user_details) self.teams_dir_pg.open_page('teams/%s/members/' % self.open_team.slug) self.teams_dir_pg.log_in(self.user.username, 'password') url_part = 'teams/%s/members/' % self.open_team.slug status, response = self.data_utils.api_get_request(self.user, url_part) self.assertNotEqual(None, response, "Got a None response")
def test_unpublished__non_member_sees_no_button(self): """Edit Subtitles not visible for non-member. """ siteuser = UserFactory.create() self.video_lang_pg.log_in(siteuser.username, 'password') self.video_lang_pg.open_video_lang_page(self.video.video_id, 'en') self.assertFalse(self.video_lang_pg.edit_subtitles_exists())
def setUpClass(cls): super(TestCaseProjectsAddEdit, cls).setUpClass() #management.call_command('flush', interactive=False) cls.data_utils = data_helpers.DataHelpers() cls.videos_tab = videos_tab.VideosTab(cls) cls.team_owner = UserFactory.create() cls.logger.info('setup: Creating team Video Test') cls.team = TeamMemberFactory.create(user=cls.team_owner).team cls.logger.info('setup: Adding a team with 2 projects.') cls.project1 = TeamProjectFactory.create(team=cls.team) cls.project2 = TeamProjectFactory.create(team=cls.team) test_videos = [ 'jaws.mp4', 'Birds_short.oggtheora.ogg', 'fireplace.mp4' ] cls.videos_list = [] for vid in test_videos: video_url = 'http://qa.pculture.org/amara_tests/%s' % vid[0] tv = VideoUrlFactory(url=video_url, video__title=vid).video v = TeamVideoFactory(video=tv, team=cls.team, added_by=cls.team_owner, project=cls.project2).video cls.videos_list.append(v) management.call_command('update_index', interactive=False) cls.videos_tab.open_videos_tab(cls.team.slug) cls.videos_tab.log_in(cls.team_owner.username, 'password') cls.project1_page = ('teams/{0}/videos/?project={1}'.format( cls.team.slug, cls.project1.slug)) cls.project2_page = ('teams/{0}/videos/?project={1}'.format( cls.team.slug, cls.project2.slug))
def test_member__safe_invite(self): """Use safe-members api to invite user from 1 team to anther. POST /api2/partners/teams/[team-slug]/safe-members/ """ #create a second team with 'second_member' as a member. second_user = UserFactory.create(username='******') second_team = TeamMemberFactory.create( team__name="normal team", team__slug='normal-team', team__description='this is the junior team', user=self.user, ).team TeamContributorMemberFactory.create(team=second_team, user=second_user) #Create a post the request user_details = { "username": second_user.username, "role": "admin", "note": "we need you on our team" } url_part = 'teams/%s/safe-members/' % self.open_team.slug status, response = self.data_utils.post_api_request( self.user, url_part, user_details) #Login in a verify invitation message is displayed usr_messages_pg = user_messages_page.UserMessagesPage(self) usr_messages_pg.log_in(second_user.username, 'password') usr_messages_pg.open_messages() invite_subject = ("You've been invited to team %s on Amara" % self.open_team.name) self.assertEqual(invite_subject, usr_messages_pg.message_subject())
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')
def test_download__multi_team_old(self): """Create a report for several teams. """ team2_user = UserFactory.create() team2 = TeamMemberFactory.create(user=team2_user).team video2, tv2 = self._create_tv_with_original_subs(team2_user, team2) self._upload_sv_translation(video2, team2_user, complete=True) for x in range(3): self._create_tv_with_original_subs(team2_user, team2) self.billing_pg.open_billing_page() self.billing_pg.log_in(self.terri.username, 'password') self.billing_pg.open_billing_page() start = (datetime.date.today() - datetime.timedelta(7)) end = (datetime.date.today() + datetime.timedelta(2)) team_names = ','.join([self.team.name, team2.name]) self.billing_pg.submit_billing_parameters(team_names, start.strftime("%Y-%m-%d"), end.strftime("%Y-%m-%d"), 'Old model') report_dl = self.billing_pg.check_latest_report_url() self.logger.info(report_dl) self.assertEqual(8, len(report_dl))
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()
def test_notify__video_follower_initial(self): """Video follower gets an email when first revision of subtitles added. """ self.skipTest('needs https://unisubs.sifterapp.com/issues/2220 fixed') video = VideoUrlFactory().video follower = UserFactory.create(email='*****@*****.**') self.video_pg.open_video_page(video.video_id) self.video_pg.log_in(follower.username, 'password') self.video_pg.page_refresh() self.video_pg.toggle_follow() self.assertEqual(self.FOLLOWING, self.video_pg.follow_text()) mail.outbox = [] self.video_pg.open_video_page(video.video_id) self.video_pg.log_in(self.user.username, 'password') self.video_pg.page_refresh() rev1 = os.path.join(self.subs_path, 'rev1.dfxp') self.video_pg.open_video_page(video.video_id) self.video_pg.upload_subtitles('English', rev1) self.assertEqual(1, len(mail.outbox)) email_to = mail.outbox[-1].to msg = str(mail.outbox[-1].message()) self.logger.info("MESSAGE: %s" % msg) self.assertIn(follower.email, email_to)
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()
def setUpClass(cls): super(TestCaseBilling, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.billing_pg = billing_page.BillingPage(cls) cls.terri = UserFactory.create(username='******', is_staff=True, is_superuser=True) cls.user = UserFactory.create() cls.team = TeamMemberFactory.create(user = cls.user).team cls.subs_data_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing', 'subtitle_data') cls.video, cls.tv = cls._create_tv_with_original_subs(cls.user, cls.team) cls._upload_sv_translation(cls.video, cls.user, complete=True) cls.bill_dict = cls.create_team_bill() cls.billing_pg.open_billing_page() cls.billing_pg.log_in(cls.terri.username, 'password')
def test_query__time(self): """List applications created after a timestamp GET /api2/partners/teams/[team-slug]/applications """ self.skipTest("Needs work") time_now = datetime.datetime.now() time.sleep(3) late_application = ApplicationFactory.create( team=self.team, user=UserFactory.create(username='******'), status=0, note='let me in, too', ) query_time = int(time_now.strftime("%s")) url_part = 'teams/{0}/applications/?after={1}'.format( self.team.slug, query_time) _, response = self.data_utils.api_get_request(self.user, url_part) applicants_objects = response['objects'] applicants_list = [] for k, v in itertools.groupby(applicants_objects, operator.itemgetter('user')): applicants_list.append(k) self.a_team_pg.open_page('teams/%s/members/' % self.team.slug) self.assertEqual('late_joiner', applicants_list)
def test_team__create(self): """Verify video urls for a particular video are listed. POST /api2/partners/teams/ """ partner_user = UserFactory.create(username='******', is_partner=True) self.user = partner_user expected_details = { 'name': 'API V2 TEAM', 'description': 'new team created via the api', 'slug': 'api-created-team' } url_part = 'teams/' r = self.data_utils.make_request(self.user, 'post', url_part, **expected_details) response = r.json for k, v in expected_details.iteritems(): self.assertEqual(v, response[k]) self.teams_dir_pg.open_page( 'teams/api-created-team/settings/permissions/') self.teams_dir_pg.log_in(self.user.username, 'password')
def setUpClass(cls): super(TestCaseEditUploaded, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.user = UserFactory.create(username='******') cls.video_language_pg = video_language_page.VideoLanguagePage(cls) cls.sub_editor = subtitle_editor.SubtitleEditor(cls) cls.subs_data_dir = os.path.join(os.getcwd(), 'apps', 'webdriver_testing', 'subtitle_data')
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')
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__))
def setUpClass(cls): super(TestCaseTaskFreeDashboard, cls).setUpClass() cls.data_utils = data_helpers.DataHelpers() cls.dashboard_tab = dashboard_tab.DashboardTab(cls) cls.logger.info('setup: Create a team and team owner, add some videos') cls.team_owner = UserFactory() cls.team = TeamMemberFactory.create(user=cls.team_owner, ).team #Add some videos with various languages required. test_videos = [('jaws.mp4', 'fr', 'fr'), ('Birds_short.oggtheora.ogg', None, None), ('fireplace.mp4', 'en', 'en')] for vid in test_videos: vidurl_data = { 'url': ('http://qa.pculture.org/amara_tests/%s' % vid[0]), 'video__title': vid[0] } video = cls.data_utils.create_video(**vidurl_data) if vid[1] is not None: video_data = { 'language_code': vid[1], 'video_language': vid[2], 'video': video.pk, 'draft': open('apps/webdriver_testing/subtitle_data/' 'Timed_text.sv.dfxp'), 'is_complete': True } cls.data_utils.upload_subs(video, video_data) TeamVideoFactory(video=video, team=cls.team, added_by=cls.team_owner) cls.logger.info( 'setup: Create team members Polly Glott and Mono Glot.') cls.polly_glott = TeamContributorMemberFactory.create( team=cls.team, user=UserFactory(username='******')).user cls.mono_glot = TeamContributorMemberFactory.create( team=cls.team, user=UserFactory(username='******')).user