def test_embed_view(self): asset = AssetFactory.create(course=self.sample_course, primary_source='image', author=self.instructor_one) note = SherdNoteFactory(asset=asset, author=self.instructor_one, title='Selection') nonce = '%smthc' % datetime.datetime.now().isoformat() digest = hmac.new( 'secret', '%s:%s:%s' % (self.sample_course.id, note.id, nonce), hashlib.sha1).hexdigest() view = AssetEmbedView() view.request = RequestFactory().get( '/', {'nonce': nonce, 'hmac': digest}, HTTP_REFERER='http://testserver/a/b/c/') view.request.course = self.sample_course view.request.user = self.instructor_one with self.assertRaises(Http404): view.get_context_data(course_id=self.sample_course.id, annot_id=note.id) secrets = {'http://testserver/': 'secret'} with self.settings(SERVER_ADMIN_SECRETKEYS=secrets): ctx = view.get_context_data(course_id=self.sample_course.id, annot_id=note.id) self.assertTrue('item' in ctx) self.assertEquals(ctx['item_id'], asset.id) self.assertEquals(ctx['selection_id'], note.id) self.assertEquals(ctx['presentation'], 'gallery') self.assertEquals(ctx['title'], 'Selection')
def test_embed_view(self): asset = AssetFactory.create(course=self.sample_course, primary_source='image', author=self.instructor_one) note = SherdNoteFactory(asset=asset, author=self.instructor_one, title='Selection') nonce = '%smthc' % datetime.datetime.now().isoformat() digest = hmac.new( 'secret'.encode('utf-8'), '{}:{}:{}'.format(self.sample_course.id, note.id, nonce).encode('utf-8'), hashlib.sha1).hexdigest() view = AssetEmbedView() view.request = RequestFactory().get( '/', { 'nonce': nonce, 'hmac': digest }, HTTP_REFERER='http://testserver/a/b/c/') view.request.course = self.sample_course view.request.user = self.instructor_one with self.assertRaises(Http404): view.get_context_data(course_id=self.sample_course.id, annot_id=note.id) secrets = {'http://testserver/': 'secret'} with self.settings(SERVER_ADMIN_SECRETKEYS=secrets): ctx = view.get_context_data(course_id=self.sample_course.id, annot_id=note.id) self.assertTrue('item' in ctx) self.assertEquals(ctx['item_id'], asset.id) self.assertEquals(ctx['selection_id'], note.id) self.assertEquals(ctx['presentation'], 'medium') self.assertEquals(ctx['title'], 'Selection')
'asset-view'), url(r'^(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', AssetWorkspaceView.as_view(), {}, 'annotation-view'), url(r'^create/(?P<asset_id>\d+)/annotations/$', annotation_create), # django-rest-framework url(r'^(?P<asset_id>\d+)/sherdnote/create/$', SherdNoteCreate.as_view(), name='sherdnote-create'), url(r'^create/(?P<asset_id>\d+)/global/$', annotation_create_global), url(r'^copy/(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', AnnotationCopyView.as_view(), {}, 'annotation-copy-view'), url(r'^save/(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', annotation_save, name="annotation-save"), url(r'^delete/(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', annotation_delete, name="annotation-delete"), url(r'^delete/(?P<asset_id>\d+)/$', asset_delete, name='asset-delete'), url(r'^xmeml/(?P<asset_id>\w+)/$', final_cut_pro_xml, name="final_cut_pro_xml"), url(r'^embed/view/(?P<course_id>\d+)/(?P<annot_id>\d+)/$', AssetEmbedView.as_view(), {}, 'selection-embed-view'), url(r'^embed', AssetEmbedListView.as_view(), {}, 'asset-embed-list'), url(r'scalar/', ScalarExportView.as_view(), name='scalar_export'), # Asset workspace variations url(r'^$', AssetWorkspaceView.as_view(), {}, 'asset-collection-view'), ]
AssetWorkspaceView.as_view(), {}, 'annotation-view'), url(r'^create/(?P<asset_id>\d+)/annotations/$', 'annotation_create'), url(r'^create/(?P<asset_id>\d+)/global/$', 'annotation_create_global'), url(r'^save/(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', 'annotation_save', name="annotation-save"), url(r'^delete/(?P<asset_id>\d+)/annotations/(?P<annot_id>\d+)/$', 'annotation_delete', name="annotation-delete"), url(r'^delete/(?P<asset_id>\d+)/$', 'asset_delete', name='asset-delete'), url(r'^xmeml/(?P<asset_id>\w+)/$', 'final_cut_pro_xml', name="final_cut_pro_xml"), url(r'^embed/view/(?P<course_id>\d+)/(?P<annot_id>\d+)/$', AssetEmbedView.as_view(), {}, 'selection-embed-view'), url(r'^embed', AssetEmbedListView.as_view(), {}, 'asset-embed-list'), url(r'scalar/', ScalarExportView.as_view(), name='scalar_export'), # Asset workspace variations url(r'^$', AssetWorkspaceView.as_view(), {}, 'asset-collection-view'), )