Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
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')
Exemple #5
0
    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)
Exemple #6
0
    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()
Exemple #10
0
    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)
Exemple #11
0
    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)
Exemple #15
0
    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")
Exemple #16
0
 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())
Exemple #17
0
    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))
Exemple #18
0
    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())
Exemple #19
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')
    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))
Exemple #21
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()
    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)
Exemple #23
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()
    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')
Exemple #25
0
    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)
Exemple #26
0
    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')
Exemple #28
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')
 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__))
Exemple #30
0
    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