def test_upload_single_file_content_visibility_examiners_and_admins(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to examiners and admins testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished( group__parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testexaminer.relatedexaminer.user ) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(1, group_models.GroupComment.objects.count()) self.assertEqual(group_models.GroupComment.VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEqual(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] self.assertEqual('testfile.txt', comment_file.filename) self.assertEqual(b'Test content', comment_file.file.file.read()) self.assertEqual(len('Test content'), comment_file.filesize) self.assertEqual('text/txt', comment_file.mimetype)
def test_upload_multiple_files_contents_visibility_examiners_and_admins( self): # Test the content of a CommentFile after upload. testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished() testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testexaminer.relatedexaminer.user) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'examiner_add_comment_for_examiners': 'unused value', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment. VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(3, comment_models.CommentFile.objects.count()) comment_file1 = comment_models.CommentFile.objects.get( filename='testfile1.txt') comment_file2 = comment_models.CommentFile.objects.get( filename='testfile2.txt') comment_file3 = comment_models.CommentFile.objects.get( filename='testfile3.txt') # Check content of testfile 1. self.assertEqual('testfile1.txt', comment_file1.filename) self.assertEqual('Test content1', comment_file1.file.file.read()) self.assertEqual(len('Test content1'), comment_file1.filesize) self.assertEqual('text/txt', comment_file1.mimetype) # Check content of testfile 2. self.assertEqual('testfile2.txt', comment_file2.filename) self.assertEqual('Test content2', comment_file2.file.file.read()) self.assertEqual(len('Test content2'), comment_file2.filesize) self.assertEqual('text/txt', comment_file2.mimetype) # Check content of testfile 3. self.assertEqual('testfile3.txt', comment_file3.filename) self.assertEqual('Test content3', comment_file3.file.file.read()) self.assertEqual(len('Test content3'), comment_file3.filesize) self.assertEqual('text/txt', comment_file3.mimetype)
def test_upload_single_file_content_visibility_examiners_and_admins(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to examiners and admins testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished() testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testexaminer.relatedexaminer.user) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment. VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] self.assertEqual('testfile.txt', comment_file.filename) self.assertEqual('Test content', comment_file.file.file.read()) self.assertEqual(len('Test content'), comment_file.filesize) self.assertEqual('text/txt', comment_file.mimetype)
def test_upload_multiple_files_visibility_everyone(self): # Test the content of CommentFiles after upload. # Posting comment with visibility visible to everyone testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished() testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testexaminer.relatedexaminer.user) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(3, comment_models.CommentFile.objects.count())
def test_upload_files_and_comment_text(self): # Test the content of a CommentFile after upload. testfeedbackset = group_mommy.feedbackset_first_attempt_published() testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), ], user=testexaminer.relatedexaminer.user) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': 'Test comment', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(2, comment_models.CommentFile.objects.count()) self.assertEqual(1, group_models.GroupComment.objects.count()) group_comments = group_models.GroupComment.objects.all() self.assertEquals('Test comment', group_comments[0].text)
def test_upload_multiple_files_visibility_examiners_and_admins(self): # Test the content of CommentFiles after upload. # Posting comment with visibility visible to everyone testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testuser ) self.mock_http302_postrequest( cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(1, group_models.GroupComment.objects.count()) self.assertEqual(group_models.GroupComment.VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEqual(3, comment_models.CommentFile.objects.count())
def test_upload_single_file_content_visibility_everyone(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to everyone testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished( group__parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testexaminer.relatedexaminer.user ) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] group_comment = group_models.GroupComment.objects.get(id=comment_file.comment.id) self.assertEquals(group_comment.visibility, group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE) self.assertEquals('testfile.txt', comment_file.filename) self.assertEquals('Test content', comment_file.file.file.read()) self.assertEquals(len('Test content'), comment_file.filesize) self.assertEquals('text/txt', comment_file.mimetype)
def test_upload_single_file_content_visibility_everyone(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to everyone testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testuser ) self.mock_http302_postrequest( cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] group_comment = group_models.GroupComment.objects.get(id=comment_file.comment.id) self.assertEqual(group_comment.visibility, group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE) self.assertEqual('testfile.txt', comment_file.filename) self.assertEqual(b'Test content', comment_file.file.file.read()) self.assertEqual(len( b'Test content'), comment_file.filesize) self.assertEqual('text/txt', comment_file.mimetype)
def test_upload_files_and_comment_text(self): # Test the content of a CommentFile after upload. testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), ], user=testuser ) self.mock_http302_postrequest( cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': 'Test comment', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(2, comment_models.CommentFile.objects.count()) self.assertEqual(1, group_models.GroupComment.objects.count()) group_comments = group_models.GroupComment.objects.all() self.assertEqual('Test comment', group_comments[0].text)
def test_upload_multiple_files_visibility_everyone(self): # Test the content of CommentFiles after upload. # Posting comment with visibility visible to everyone testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished( group__parentnode__parentnode=mommy.make_recipe('devilry.apps.core.period_active')) testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testexaminer.relatedexaminer.user ) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(1, group_models.GroupComment.objects.count()) self.assertEqual(group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE, group_models.GroupComment.objects.all()[0].visibility) self.assertEqual(3, comment_models.CommentFile.objects.count())
def test_upload_files_draft(self): # Test the content of a CommentFile after upload. testassignment = mommy.make_recipe('devilry.apps.core.assignment_activeperiod_start', grading_system_plugin_id=core_models.Assignment .GRADING_SYSTEM_PLUGIN_ID_PASSEDFAILED) testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished(group__parentnode=testassignment) testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt') ], user=testexaminer.relatedexaminer.user ) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'passed': 'Passed', 'text': '', 'examiner_add_comment_to_feedback_draft': 'unused value', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEqual(2, comment_models.CommentFile.objects.count()) self.assertEqual(1, group_models.GroupComment.objects.count()) self.assertIsNone(group_models.FeedbackSet.objects.get(id=testfeedbackset.id).grading_published_datetime)
def test_upload_single_file_content_visibility_everyone(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to everyone testgroup = mommy.make('core.AssignmentGroup') testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testuser) self.mock_http302_postrequest(cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] group_comment = group_models.GroupComment.objects.get( id=comment_file.comment.id) self.assertEquals( group_comment.visibility, group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE) self.assertEquals('testfile.txt', comment_file.filename) self.assertEquals('Test content', comment_file.file.file.read()) self.assertEquals(len('Test content'), comment_file.filesize) self.assertEquals('text/txt', comment_file.mimetype)
def test_upload_multiple_files_visibility_examiners_and_admins(self): # Test the content of CommentFiles after upload. # Posting comment with visibility visible to everyone testgroup = mommy.make('core.AssignmentGroup') testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testuser) self.mock_http302_postrequest(cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment. VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(3, comment_models.CommentFile.objects.count())
def test_upload_files_and_comment_text(self): # Test the content of a CommentFile after upload. testgroup = mommy.make('core.AssignmentGroup') testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), ], user=testuser) self.mock_http302_postrequest(cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': 'Test comment', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(2, comment_models.CommentFile.objects.count()) self.assertEqual(1, group_models.GroupComment.objects.count()) group_comments = group_models.GroupComment.objects.all() self.assertEquals('Test comment', group_comments[0].text)
def test_upload_multiple_files_contents_visibility_everyone(self): # Test the content of a CommentFile after upload. testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode=mommy.make_recipe( 'devilry.apps.core.period_active')) testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt'), SimpleUploadedFile(name='testfile3.txt', content=b'Test content3', content_type='text/txt') ], user=testuser) self.mock_http302_postrequest(cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment.VISIBILITY_VISIBLE_TO_EVERYONE, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(3, comment_models.CommentFile.objects.count()) comment_file1 = comment_models.CommentFile.objects.get( filename='testfile1.txt') comment_file2 = comment_models.CommentFile.objects.get( filename='testfile2.txt') comment_file3 = comment_models.CommentFile.objects.get( filename='testfile3.txt') # Check content of testfile 1. self.assertEqual('testfile1.txt', comment_file1.filename) self.assertEqual('Test content1', comment_file1.file.file.read()) self.assertEqual(len('Test content1'), comment_file1.filesize) self.assertEqual('text/txt', comment_file1.mimetype) # Check content of testfile 2. self.assertEqual('testfile2.txt', comment_file2.filename) self.assertEqual('Test content2', comment_file2.file.file.read()) self.assertEqual(len('Test content2'), comment_file2.filesize) self.assertEqual('text/txt', comment_file2.mimetype) # Check content of testfile 3. self.assertEqual('testfile3.txt', comment_file3.filename) self.assertEqual('Test content3', comment_file3.file.file.read()) self.assertEqual(len('Test content3'), comment_file3.filesize) self.assertEqual('text/txt', comment_file3.mimetype)
def test_upload_files_draft(self): # Test the content of a CommentFile after upload. testassignment = mommy.make_recipe( 'devilry.apps.core.assignment_activeperiod_start', grading_system_plugin_id=core_models.Assignment. GRADING_SYSTEM_PLUGIN_ID_PASSEDFAILED) testfeedbackset = group_mommy.feedbackset_first_attempt_unpublished( group__parentnode=testassignment) testexaminer = mommy.make('core.examiner', assignmentgroup=testfeedbackset.group) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile1.txt', content=b'Test content1', content_type='text/txt'), SimpleUploadedFile(name='testfile2.txt', content=b'Test content2', content_type='text/txt') ], user=testexaminer.relatedexaminer.user) self.mock_http302_postrequest( cradmin_role=testexaminer.assignmentgroup, requestuser=testexaminer.relatedexaminer.user, viewkwargs={'pk': testfeedbackset.group.id}, requestkwargs={ 'data': { 'passed': 'Passed', 'text': '', 'examiner_add_comment_to_feedback_draft': 'unused value', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(2, comment_models.CommentFile.objects.count()) self.assertEqual(1, group_models.GroupComment.objects.count()) self.assertIsNone( group_models.FeedbackSet.objects.get( id=testfeedbackset.id).grading_published_datetime)
def test_upload_single_file_content_visibility_examiners_and_admins(self): # Test the content of a CommentFile after upload. # Posting comment with visibility visible to examiners and admins testgroup = mommy.make('core.AssignmentGroup', parentnode__parentnode=mommy.make_recipe( 'devilry.apps.core.period_active')) testuser = mommy.make(settings.AUTH_USER_MODEL) temporary_filecollection = group_mommy.temporary_file_collection_with_tempfiles( file_list=[ SimpleUploadedFile(name='testfile.txt', content=b'Test content', content_type='text/txt') ], user=testuser) self.mock_http302_postrequest(cradmin_role=testgroup, requestuser=testuser, viewkwargs={'pk': testgroup.id}, requestkwargs={ 'data': { 'text': '', 'temporary_file_collection_id': temporary_filecollection.id } }) self.assertEquals(1, group_models.GroupComment.objects.count()) self.assertEqual( group_models.GroupComment. VISIBILITY_VISIBLE_TO_EXAMINER_AND_ADMINS, group_models.GroupComment.objects.all()[0].visibility) self.assertEquals(1, comment_models.CommentFile.objects.count()) comment_file = comment_models.CommentFile.objects.all()[0] self.assertEqual('testfile.txt', comment_file.filename) self.assertEqual('Test content', comment_file.file.file.read()) self.assertEqual(len('Test content'), comment_file.filesize) self.assertEqual('text/txt', comment_file.mimetype)