def _add_announcement_and_translation(self, locale, is_draft=False):
        announcement = announcements.AnnouncementEntity()
        announcement.title = 'Test Announcement'
        announcement.html = 'Announcement Content'
        announcement.is_draft = is_draft
        announcement.put()

        key = i18n_dashboard.ResourceBundleKey(
            announcements.ResourceHandlerAnnouncement.TYPE,
            announcement.key().id(), locale)
        dto = i18n_dashboard.ResourceBundleDTO(
            str(key), {
                'title': {
                    'type':
                    'string',
                    'source_value':
                    '',
                    'data': [{
                        'source_value': 'Test Announcement',
                        'target_value': 'TEST ANNOUNCEMENT'
                    }]
                },
                'html': {
                    'type':
                    'string',
                    'source_value':
                    '',
                    'data': [{
                        'source_value': 'Announcement Content',
                        'target_value': 'ANNOUNCEMENT CONTENT'
                    }]
                },
            })
        i18n_dashboard.ResourceBundleDAO.save(dto)
        return announcement
예제 #2
0
    def test_youtube(self):
        sites.setup_courses('course:/test::ns_test, course:/:/')
        default_namespace = namespace_manager.get_namespace()
        try:
            namespace_manager.set_namespace('ns_test')

            course = courses.Course(None,
                                    app_context=sites.get_all_courses()[0])
            unit = course.add_unit()
            unit.now_available = True
            lesson_a = course.add_lesson(unit)
            lesson_a.video = 'portal'
            lesson_a.now_available = True
            lesson_b = course.add_lesson(unit)
            lesson_b.objectives = '<gcb-youtube videoid="glados">'
            lesson_b.now_available = True
            course.update_unit(unit)
            course.save()

            entity = announcements.AnnouncementEntity()
            entity.html = '<gcb-youtube videoid="aperature">'
            entity.title = 'Sample Announcement'
            entity.date = datetime.datetime.now().date()
            entity.is_draft = False
            entity.put()

            self.index_test_course()

            response = self.get('/test/search?query=apple')
            self.assertIn('gcb-search-result', response.body)
            self.assertIn('start=3.14', response.body)
            self.assertIn('v=portal', response.body)
            self.assertIn('v=glados', response.body)
            self.assertIn('v=aperature', response.body)
            self.assertIn('lemon', response.body)
            self.assertIn('Medicus Quis', response.body)
            self.assertIn('- YouTube', response.body)
            self.assertIn('http://thumbnail.null', response.body)

            # Test to make sure empty notes field doesn't cause a urlfetch
            response = self.get('/test/search?query=cogito')
            self.assertNotIn('gcb-search-result', response.body)
        finally:
            namespace_manager.set_namespace(default_namespace)