def test_get_context_data(self): request = RequestFactory().get('/dashboard/migrate/') request.user = User.objects.get(username='******') request.course = self.sample_course view = MigrateCourseView() view.request = request ctx = view.get_context_data() self.assertEquals(len(ctx['current_course_faculty']), 2) self.assertEquals(ctx['current_course_faculty'][0].username, 'test_instructor') self.assertEquals(ctx['current_course_faculty'][1].username, 'test_instructor_two') self.assertEquals(len(ctx['available_courses']), 2) self.assertEquals(ctx['available_courses'][0].title, 'Alternate Course') self.assertEquals(ctx['available_courses'][1].title, 'Sample Course') request.user = self.superuser ctx = view.get_context_data() self.assertEquals(len(ctx['available_courses']), 2) self.assertEquals(ctx['available_courses'][0].title, 'Alternate Course') self.assertEquals(ctx['available_courses'][1].title, 'Sample Course')
def test_migrate_tags_and_notes(self): data = { 'fromCourse': self.sample_course.id, 'asset_ids[]': [self.asset1.id], 'project_ids[]': [], 'include_tags': 'true', 'include_notes': 'true' } # Migrate assets from SampleCourse into Alternate Course # test_instructor_three is a member of both courses request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.instructor_three request.course = self.alt_course view = MigrateCourseView() view.request = request view.post(request) new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) self.assertEquals(new_asset.sherdnote_set.count(), 2) note = new_asset.sherdnote_set.get(title=self.instructor_note.title) self.assertEquals(note.tags, self.instructor_note.tags) self.assertEquals(note.body, self.instructor_note.body) note = new_asset.global_annotation(self.instructor_three, False) self.assertEquals( note.tags, u',image, instructor_one_global,,instructor_two_global,') self.assertEquals( note.body, u'instructor one global noteinstructor two global note')
def test_get_context_data(self): request = RequestFactory().get('/dashboard/migrate/') request.user = self.instructor_three request.course = self.sample_course view = MigrateCourseView() view.request = request ctx = view.get_context_data() self.assertEquals(len(ctx['current_course_faculty']), 3) self.assertEquals(ctx['current_course_faculty'][0].username, 'instructor_one') self.assertEquals(ctx['current_course_faculty'][1].username, 'instructor_three') self.assertEquals(ctx['current_course_faculty'][2].username, 'instructor_two') self.assertEquals(len(ctx['available_courses']), 2) self.assertEquals(ctx['available_courses'][0].title, 'Alternate Course') self.assertEquals(ctx['available_courses'][1].title, 'Sample Course') request.user = self.superuser ctx = view.get_context_data() self.assertEquals(len(ctx['available_courses']), 2) self.assertEquals(ctx['available_courses'][0].title, 'Alternate Course') self.assertEquals(ctx['available_courses'][1].title, 'Sample Course')
def test_post_invalidcourse(self): data = {'fromCourse': 42} request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.superuser request.course = self.sample_course view = MigrateCourseView() view.request = request self.assertRaises(Http404, view.post, request)
def test_post_invalidcourse(self): data = { 'fromCourse': 23 } request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.superuser request.course = self.sample_course view = MigrateCourseView() view.request = request self.assertRaises(Http404, view.post, request)
def test_migrate_project(self): self.project1 = ProjectFactory.create(course=self.sample_course, author=self.instructor_one, policy='PublicEditorsAreOwners') self.add_citation(self.project1, self.instructor_note) self.add_citation(self.project1, self.student_note) self.assertEquals(len(self.project1.citations()), 2) data = { 'fromCourse': self.sample_course.id, 'asset_ids[]': [], 'project_ids[]': [self.project1.id] } # Migrate assets from SampleCourse into Alternate Course # test_instructor_three is a member of both courses request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.instructor_three request.course = self.alt_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertTrue(the_json['success']) self.assertEquals(the_json['asset_count'], 1) self.assertEquals(the_json['project_count'], 1) self.assertEquals(the_json['note_count'], 2) new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) self.assertEquals(new_asset.sherdnote_set.count(), 3) new_note = new_asset.sherdnote_set.get(title=self.student_note.title) self.assertEquals(new_note.author, self.instructor_three) new_note = new_asset.sherdnote_set.get( title=self.instructor_note.title) self.assertEquals(new_note.author, self.instructor_three) new_note = new_asset.sherdnote_set.get(title=None) self.assertEquals(new_note.author, self.instructor_three) self.assertTrue(new_note.is_global_annotation()) new_project = Project.objects.get( course=self.alt_course, title=self.project1.title) self.assertEquals(len(new_project.citations()), 2)
def test_post_on_behalf_of_faculty(self): data = { 'fromCourse': self.alt_course.id, 'on_behalf_of': self.alt_instructor.id } request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.superuser request.course = self.sample_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertFalse(the_json['success'])
def test_post_on_behalf_of_faculty(self): teacher = User.objects.get(username='******') data = { 'fromCourse': self.alt_course.id, 'on_behalf_of': teacher.id } request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.superuser request.course = self.sample_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertFalse(the_json['success'])
def test_post_on_behalf_of_student(self): student = User.objects.get(username='******') data = { 'fromCourse': self.alt_course.id, 'on_behalf_of': student.id } request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.superuser request.course = self.sample_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertFalse(the_json['success'])
def test_post(self): asset1 = Asset.objects.get( course=self.sample_course, title="The Armory - Home to CCNMTL'S CUMC Office") project1 = Project.objects.get( course=self.sample_course, title='Sample Course Assignment') data = { 'fromCourse': self.sample_course.id, 'asset_ids[]': [asset1.id], 'project_ids[]': [project1.id] } # Migrate assets from SampleCourse into Alternate Course # test_instructor_two is a member of both courses request = RequestFactory().post('/dashboard/migrate/', data) request.user = User.objects.get(username='******') request.course = self.alt_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertTrue(the_json['success']) self.assertEquals(the_json['asset_count'], 4) self.assertEquals(the_json['project_count'], 1) self.assertEquals(the_json['note_count'], 6) Asset.objects.get( course=self.alt_course, title="The Armory - Home to CCNMTL'S CUMC Office") Asset.objects.get( course=self.alt_course, title="Mediathread: Introduction") Asset.objects.get(course=self.alt_course, title="MAAP Award Reception") Asset.objects.get(course=self.alt_course, title="Project Portfolio") project1 = Project.objects.get( course=self.alt_course, title='Sample Course Assignment') self.assertEquals(len(project1.citations()), 5)
def test_migrate_asset(self): data = {'fromCourse': self.sample_course.id, 'asset_ids[]': [self.asset1.id], 'project_ids[]': []} # Migrate assets from SampleCourse into Alternate Course # test_instructor_three is a member of both courses request = RequestFactory().post('/dashboard/migrate/', data) request.user = self.instructor_three request.course = self.alt_course view = MigrateCourseView() view.request = request response = view.post(request) the_json = json.loads(response.content) self.assertTrue(the_json['success']) self.assertEquals(the_json['asset_count'], 1) self.assertEquals(the_json['project_count'], 0) self.assertEquals(the_json['note_count'], 3) new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) self.assertEquals(new_asset.sherdnote_set.count(), 2) # verify there is a global annotation for instructor three ga = new_asset.global_annotation(self.instructor_three, False) self.assertIsNone(ga.title) self.assertEquals(ga.tags, '') self.assertIsNone(ga.body) # verify there is a selection annotation for instructor three note = new_asset.sherdnote_set.get(title=self.instructor_note.title) self.assertEquals(note.tags, '') self.assertIsNone(note.body) self.assertFalse(note.is_global_annotation())
(r'^course/request/', RequestCourseView.as_view()), # Courseaffils url(r'^accounts/logged_in.js$', 'courseaffils.views.is_logged_in', name='is_logged_in.js'), url(r'^nocache/\w+/accounts/logged_in.js$', 'courseaffils.views.is_logged_in', name='nocache-is_logged_in.js'), (r'^crossdomain.xml$', 'django.views.static.serve', { 'document_root': os.path.abspath(os.path.dirname(__file__)), 'path': 'crossdomain.xml' }), url(r'^dashboard/migrate/materials/(?P<course_id>\d+)/$', MigrateMaterialsView.as_view(), {}, 'dashboard-migrate-materials'), url(r'^dashboard/migrate/$', MigrateCourseView.as_view(), {}, "dashboard-migrate"), url(r'^dashboard/sources/', 'mediathread.main.views.class_manage_sources', name="class-manage-sources"), url(r'^dashboard/settings/', 'mediathread.main.views.class_settings', name="class-settings"), # Discussion (r'^discussion/', include('mediathread.discussions.urls')), # Manage Sources url(r'^explore/redirect/$', 'mediathread.assetmgr.views.source_redirect', name="source_redirect"),
path('accounts/is_logged_in/', IsLoggedInDataView.as_view(), {}, name='is_logged_in'), path('bookmarklet_migration/', BookmarkletMigrationView.as_view(), {}, name='bookmarklet_migration'), path( 'crossdomain.xml', django.views.static.serve, { 'document_root': os.path.join(os.path.dirname(__file__), '../media/'), 'path': 'crossdomain.xml' }), path('dashboard/migrate/materials/<int:course_id>/', MigrateMaterialsView.as_view(), {}, 'dashboard-migrate-materials'), path('course/<int:course_pk>/dashboard/migrate/', MigrateCourseView.as_view(), {}, 'dashboard-migrate'), path('dashboard/roster/promote/', CoursePromoteUserView.as_view(), name='course-roster-promote'), path('dashboard/roster/demote/', CourseDemoteUserView.as_view(), name='course-roster-demote'), path('dashboard/roster/remove/', CourseRemoveUserView.as_view(), name='course-roster-remove'), path('dashboard/roster/add/uni/', CourseAddUserByUNIView.as_view(), name='course-roster-add-uni'), path('dashboard/roster/add/email/', CourseInviteUserByEmailView.as_view(), name='course-roster-invite-email'),
TemplateView.as_view(template_name="main/course_request_success.html")), (r'^course/request/', RequestCourseView.as_view()), # Courseaffils url(r'^accounts/logged_in.js$', 'courseaffils.views.is_logged_in', name='is_logged_in.js'), url(r'^nocache/\w+/accounts/logged_in.js$', 'courseaffils.views.is_logged_in', name='nocache-is_logged_in.js'), (r'^crossdomain.xml$', 'django.views.static.serve', {'document_root': os.path.abspath(os.path.dirname(__file__)), 'path': 'crossdomain.xml'}), url(r'^dashboard/migrate/materials/(?P<course_id>\d+)/$', MigrateMaterialsView.as_view(), {}, 'dashboard-migrate-materials'), url(r'^dashboard/migrate/$', MigrateCourseView.as_view(), {}, "dashboard-migrate"), url(r'^dashboard/sources/', 'mediathread.main.views.class_manage_sources', name="class-manage-sources"), url(r'^dashboard/settings/', 'mediathread.main.views.class_settings', name="class-settings"), # Discussion (r'^discussion/', include('mediathread.discussions.urls')), # Manage Sources url(r'^explore/redirect/$', 'mediathread.assetmgr.views.source_redirect', name="source_redirect"),