Exemple #1
0
    def setUp(self):
        self.setup_sample_course()

        self.asset1 = AssetFactory(course=self.sample_course)
        global_annotation, created = SherdNote.objects.global_annotation(
            self.asset1, self.student_three, auto_create=True
        )
        self.assertTrue(global_annotation.is_global_annotation())

        whole_item_annotation = SherdNoteFactory(
            asset=self.asset1, author=self.student_three, title="Whole Item Selection", range1=0, range2=0
        )
        self.assertFalse(whole_item_annotation.is_global_annotation())

        real_annotation = SherdNoteFactory(
            asset=self.asset1, author=self.student_three, title="Selection", range1=116.25, range2=6.75
        )
        self.assertFalse(real_annotation.is_global_annotation())

        self.assignment1 = ProjectFactory.create(
            title="Alpha",
            course=self.sample_course,
            author=self.instructor_one,
            policy="CourseProtected",
            project_type="assignment",
        )

        self.response1 = ProjectFactory.create(
            title="Response 1",
            course=self.sample_course,
            author=self.student_one,
            policy="InstructorShared",
            parent=self.assignment1,
        )
        self.response2 = ProjectFactory.create(
            title="Response 2",
            date_submitted=datetime.now(),
            course=self.sample_course,
            author=self.student_two,
            policy="InstructorShared",
            parent=self.assignment1,
        )

        self.assignment2 = ProjectFactory.create(
            title="Beta",
            course=self.sample_course,
            author=self.instructor_one,
            policy="CourseProtected",
            project_type="assignment",
        )

        self.project = ProjectFactory(
            title="Gamma", course=self.sample_course, author=self.instructor_one, policy="CourseProtected"
        )

        self.add_citation(self.project, global_annotation)
        self.add_citation(self.project, whole_item_annotation)
        self.add_citation(self.project, real_annotation)
Exemple #2
0
    def test_is_global_annotation(self):
        asset = AssetFactory(course=self.sample_course)
        global_annotation, created = SherdNote.objects.global_annotation(
            asset, self.student_three, auto_create=True)
        self.assertTrue(global_annotation.is_global_annotation())

        whole_item_annotation = SherdNoteFactory(
            asset=asset, author=self.student_three,
            title="Whole Item Selection", range1=0, range2=0)
        self.assertFalse(whole_item_annotation.is_global_annotation())

        real_annotation = SherdNoteFactory(
            asset=asset, author=self.student_three,
            title="Selection", range1=116.25, range2=6.75)
        self.assertFalse(real_annotation.is_global_annotation())
Exemple #3
0
    def setUp(self):
        self.setup_sample_course()

        self.asset1 = AssetFactory(course=self.sample_course)
        global_annotation, created = SherdNote.objects.global_annotation(
            self.asset1, self.student_three, auto_create=True)
        self.assertTrue(global_annotation.is_global_annotation())

        whole_item_annotation = SherdNoteFactory(
            asset=self.asset1, author=self.student_three,
            title="Whole Item Selection", range1=0, range2=0)
        self.assertFalse(whole_item_annotation.is_global_annotation())

        real_annotation = SherdNoteFactory(
            asset=self.asset1, author=self.student_three,
            title="Selection", range1=116.25, range2=6.75)
        self.assertFalse(real_annotation.is_global_annotation())

        self.assignment1 = ProjectFactory.create(
            title='Alpha', course=self.sample_course,
            author=self.instructor_one, policy='CourseProtected',
            project_type='assignment')

        self.response1 = ProjectFactory.create(
            title="Response 1",
            course=self.sample_course, author=self.student_one,
            policy='InstructorShared', parent=self.assignment1)
        self.response2 = ProjectFactory.create(
            title="Response 2", date_submitted=datetime.now(),
            course=self.sample_course, author=self.student_two,
            policy='InstructorShared', parent=self.assignment1)

        self.assignment2 = ProjectFactory.create(
            title='Beta', course=self.sample_course,
            author=self.instructor_one, policy='CourseProtected',
            project_type='assignment')

        self.project = ProjectFactory(title='Gamma', course=self.sample_course,
                                      author=self.instructor_one,
                                      policy='CourseProtected')

        self.add_citation(self.project, global_annotation)
        self.add_citation(self.project, whole_item_annotation)
        self.add_citation(self.project, real_annotation)
Exemple #4
0
    def test_is_global_annotation(self):
        asset = AssetFactory(course=self.sample_course)
        global_annotation, created = SherdNote.objects.global_annotation(
            asset, self.student_three, auto_create=True)
        self.assertTrue(global_annotation.is_global_annotation())

        whole_item_annotation = SherdNoteFactory(asset=asset,
                                                 author=self.student_three,
                                                 title="Whole Item Selection",
                                                 range1=0,
                                                 range2=0)
        self.assertFalse(whole_item_annotation.is_global_annotation())

        real_annotation = SherdNoteFactory(asset=asset,
                                           author=self.student_three,
                                           title="Whole Item Selection",
                                           range1=116.25,
                                           range2=6.75)
        self.assertFalse(real_annotation.is_global_annotation())
Exemple #5
0
class SherdNoteFilterTest(MediathreadTestCase):
    def setUp(self):
        super(self.__class__, self).setUp()

        self.asset = AssetFactory(course=self.sample_course,
                                  author=self.student_one)

        self.ga1 = SherdNoteFactory(asset=self.asset,
                                    author=self.student_one,
                                    tags=',student_one_item',
                                    title=None,
                                    range1=None,
                                    range2=None)
        self.assertTrue(self.ga1.is_global_annotation())
        self.note1 = SherdNoteFactory(asset=self.asset,
                                      author=self.student_one,
                                      tags=',student_one_selection',
                                      range1=0,
                                      range2=1)

        self.ga2 = SherdNoteFactory(asset=self.asset,
                                    author=self.student_two,
                                    tags=',student_two_item',
                                    title=None,
                                    range1=None,
                                    range2=None)
        self.note2 = SherdNoteFactory(asset=self.asset,
                                      author=self.student_two,
                                      tags=',student_two_selection',
                                      range1=0,
                                      range2=1)

        self.ga3 = SherdNoteFactory(asset=self.asset,
                                    author=self.instructor_one,
                                    tags=',instructor_one_item',
                                    title=None,
                                    range1=None,
                                    range2=None)
        self.note3 = SherdNoteFactory(asset=self.asset,
                                      author=self.instructor_one,
                                      tags=',image,instructor_one_selection,',
                                      range1=0,
                                      range2=1)

    def test_filter_by_record_owner(self):
        qs = Asset.objects.filter(id=self.asset.id)
        author = User.objects.get(username='******')

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs, author,
                                                    visible_authors)
        self.assertEquals(notes.count(), 2)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)

    def test_filter_no_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        notes = SherdNote.objects.get_related_notes(qs, None, [])
        self.assertEquals(notes.count(), 6)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)
        self.assertEquals(notes[2], self.ga2)
        self.assertEquals(notes[3], self.note2)
        self.assertEquals(notes[4], self.ga3)
        self.assertEquals(notes[5], self.note3)

    def test_filter_by_visible_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs, None, visible_authors)
        self.assertEquals(notes.count(), 4)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)
        self.assertEquals(notes[2], self.ga3)
        self.assertEquals(notes[3], self.note3)

    def test_filter_by_tags(self):
        notes = SherdNote.objects.filter_by_tags('student_one_selection')
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], self.note1)

        notes = SherdNote.objects.filter(asset=self.asset)
        self.assertEquals(notes.count(), 6)

        notes = notes.filter_by_tags('student_two_selection,image').order_by(
            'id')
        self.assertEquals(notes.count(), 2)
        self.assertEquals(notes[0], self.note2)
        self.assertEquals(notes[1], self.note3)
Exemple #6
0
class SherdNoteFilterTest(MediathreadTestMixin, TestCase):

    def setUp(self):
        self.setup_sample_course()

        self.asset = AssetFactory(course=self.sample_course,
                                  author=self.student_one,
                                  primary_source='image',)

        self.student_one_ga = SherdNoteFactory(
            asset=self.asset, author=self.student_one,
            tags=',student_one_item', title=None, range1=None, range2=None)
        self.assertTrue(self.student_one_ga.is_global_annotation())
        self.student_one_note = SherdNoteFactory(
            asset=self.asset, author=self.student_one,
            tags=',student_one_selection', range1=0, range2=1)

        self.student_two_ga = SherdNoteFactory(
            asset=self.asset, author=self.student_two,
            tags=',student_two_item', title=None, range1=None, range2=None)
        self.student_two_note = SherdNoteFactory(
            asset=self.asset, author=self.student_two,
            tags=',student_two_selection', range1=0, range2=1)

        self.instructor_one_ga = SherdNoteFactory(
            asset=self.asset, author=self.instructor_one,
            tags=',instructor_one_item', title=None, range1=None, range2=None)
        self.instructor_one_note = SherdNoteFactory(
            asset=self.asset, author=self.instructor_one,
            tags=',image,instructor_one_selection,', range1=0, range2=1)

    def test_filter_by_record_owner(self):
        qs = Asset.objects.filter(id=self.asset.id)
        author = User.objects.get(username='******')

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs,
                                                    author,
                                                    visible_authors,
                                                    True)
        self.assertEquals(notes.count(), 2)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)

    def test_filter_no_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        notes = SherdNote.objects.get_related_notes(qs, None, [], True)
        self.assertEquals(notes.count(), 6)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.student_two_ga)
        self.assertEquals(notes[3], self.student_two_note)
        self.assertEquals(notes[4], self.instructor_one_ga)
        self.assertEquals(notes[5], self.instructor_one_note)

    def test_filter_by_visible_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs,
                                                    None,
                                                    visible_authors,
                                                    True)
        self.assertEquals(notes.count(), 5)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.student_two_ga)
        self.assertEquals(notes[3], self.instructor_one_ga)
        self.assertEquals(notes[4], self.instructor_one_note)

    def test_filter_by_all_items_are_visible(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs,
                                                    None,
                                                    visible_authors,
                                                    False)
        self.assertEquals(notes.count(), 4)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.instructor_one_ga)
        self.assertEquals(notes[3], self.instructor_one_note)

    def test_filter_by_tags(self):
        notes = SherdNote.objects.filter_by_tags('student_one_selection')
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], self.student_one_note)

        notes = SherdNote.objects.filter(asset=self.asset)
        self.assertEquals(notes.count(), 6)

        notes = notes.filter_by_tags(
            'student_two_selection,image').order_by('id')
        self.assertEquals(notes.count(), 2)
        self.assertEquals(notes[0], self.student_two_note)
        self.assertEquals(notes[1], self.instructor_one_note)

    def test_get_related_assets(self):
        asset2 = AssetFactory(course=self.sample_course,
                              author=self.student_one)
        note2 = SherdNoteFactory(asset=asset2, author=self.student_one)

        ids = [self.student_one_ga.id, self.student_one_note.id, note2.id]
        notes = SherdNote.objects.filter(id__in=ids)

        assets = notes.get_related_assets()
        self.assertEquals(assets.count(), 2)
        self.assertTrue(self.asset in assets)
        self.assertTrue(asset2 in assets)

    def test_exclude_primary_types(self):
        asset2 = AssetFactory(course=self.sample_course,
                              author=self.student_one,
                              primary_source='youtube',)

        youtube_note = SherdNoteFactory(
            asset=asset2, author=self.student_one,
            tags=',student_one_selection', range1=0, range2=1)

        qs = SherdNote.objects.filter(author=self.student_one)
        self.assertEquals(qs.count(), 3)

        notes = qs.exclude_primary_types(['youtube'])
        self.assertEquals(notes.count(), 2)
        self.assertTrue(self.student_one_ga in notes)
        self.assertTrue(self.student_one_note in notes)

        notes = qs.exclude_primary_types(['image'])
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], youtube_note)
Exemple #7
0
class SherdNoteFilterTest(MediathreadTestMixin, TestCase):
    def setUp(self):
        self.setup_sample_course()

        self.asset = AssetFactory(
            course=self.sample_course,
            author=self.student_one,
            primary_source='image',
        )

        self.student_one_ga = SherdNoteFactory(asset=self.asset,
                                               author=self.student_one,
                                               tags=',student_one_item',
                                               title=None,
                                               range1=None,
                                               range2=None)
        self.assertTrue(self.student_one_ga.is_global_annotation())
        self.student_one_note = SherdNoteFactory(asset=self.asset,
                                                 author=self.student_one,
                                                 tags=',student_one_selection',
                                                 range1=0,
                                                 range2=1)

        self.student_two_ga = SherdNoteFactory(asset=self.asset,
                                               author=self.student_two,
                                               tags=',student_two_item',
                                               title=None,
                                               range1=None,
                                               range2=None)
        self.student_two_note = SherdNoteFactory(asset=self.asset,
                                                 author=self.student_two,
                                                 tags=',student_two_selection',
                                                 range1=0,
                                                 range2=1)

        self.instructor_one_ga = SherdNoteFactory(asset=self.asset,
                                                  author=self.instructor_one,
                                                  tags=',instructor_one_item',
                                                  title=None,
                                                  range1=None,
                                                  range2=None)
        self.instructor_one_note = SherdNoteFactory(
            asset=self.asset,
            author=self.instructor_one,
            tags=',image,instructor_one_selection,',
            range1=0,
            range2=1)

    def test_filter_by_record_owner(self):
        qs = Asset.objects.filter(id=self.asset.id)
        author = User.objects.get(username='******')

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs, author,
                                                    visible_authors, True)
        self.assertEquals(notes.count(), 2)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)

    def test_filter_no_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        notes = SherdNote.objects.get_related_notes(qs, None, [], True)
        self.assertEquals(notes.count(), 6)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.student_two_ga)
        self.assertEquals(notes[3], self.student_two_note)
        self.assertEquals(notes[4], self.instructor_one_ga)
        self.assertEquals(notes[5], self.instructor_one_note)

    def test_filter_by_visible_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs, None, visible_authors,
                                                    True)
        self.assertEquals(notes.count(), 5)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.student_two_ga)
        self.assertEquals(notes[3], self.instructor_one_ga)
        self.assertEquals(notes[4], self.instructor_one_note)

    def test_filter_by_all_items_are_visible(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs, None, visible_authors,
                                                    False)
        self.assertEquals(notes.count(), 4)

        self.assertEquals(notes[0], self.student_one_ga)
        self.assertEquals(notes[1], self.student_one_note)
        self.assertEquals(notes[2], self.instructor_one_ga)
        self.assertEquals(notes[3], self.instructor_one_note)

    def test_filter_by_tags(self):
        notes = SherdNote.objects.filter_by_tags('student_one_selection')
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], self.student_one_note)

        notes = SherdNote.objects.filter(asset=self.asset)
        self.assertEquals(notes.count(), 6)

        notes = notes.filter_by_tags('student_two_selection,image').order_by(
            'id')
        self.assertEquals(notes.count(), 2)
        self.assertEquals(notes[0], self.student_two_note)
        self.assertEquals(notes[1], self.instructor_one_note)

    def test_get_related_assets(self):
        asset2 = AssetFactory(course=self.sample_course,
                              author=self.student_one)
        note2 = SherdNoteFactory(asset=asset2, author=self.student_one)

        ids = [self.student_one_ga.id, self.student_one_note.id, note2.id]
        notes = SherdNote.objects.filter(id__in=ids)

        assets = notes.get_related_assets()
        self.assertEquals(assets.count(), 2)
        self.assertTrue(self.asset in assets)
        self.assertTrue(asset2 in assets)

    def test_exclude_primary_types(self):
        asset2 = AssetFactory(
            course=self.sample_course,
            author=self.student_one,
            primary_source='youtube',
        )

        youtube_note = SherdNoteFactory(asset=asset2,
                                        author=self.student_one,
                                        tags=',student_one_selection',
                                        range1=0,
                                        range2=1)

        qs = SherdNote.objects.filter(author=self.student_one)
        self.assertEquals(qs.count(), 3)

        notes = qs.exclude_primary_types(['youtube'])
        self.assertEquals(notes.count(), 2)
        self.assertTrue(self.student_one_ga in notes)
        self.assertTrue(self.student_one_note in notes)

        notes = qs.exclude_primary_types(['image'])
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], youtube_note)
Exemple #8
0
class SherdNoteFilterTest(MediathreadTestCase):

    def setUp(self):
        super(self.__class__, self).setUp()

        self.asset = AssetFactory(course=self.sample_course,
                                  author=self.student_one)

        self.ga1 = SherdNoteFactory(
            asset=self.asset, author=self.student_one,
            tags=',student_one_item', title=None, range1=None, range2=None)
        self.assertTrue(self.ga1.is_global_annotation())
        self.note1 = SherdNoteFactory(
            asset=self.asset, author=self.student_one,
            tags=',student_one_selection', range1=0, range2=1)

        self.ga2 = SherdNoteFactory(
            asset=self.asset, author=self.student_two,
            tags=',student_two_item', title=None, range1=None, range2=None)
        self.note2 = SherdNoteFactory(
            asset=self.asset, author=self.student_two,
            tags=',student_two_selection', range1=0, range2=1)

        self.ga3 = SherdNoteFactory(
            asset=self.asset, author=self.instructor_one,
            tags=',instructor_one_item', title=None, range1=None, range2=None)
        self.note3 = SherdNoteFactory(
            asset=self.asset, author=self.instructor_one,
            tags=',image,instructor_one_selection,', range1=0, range2=1)

    def test_filter_by_record_owner(self):
        qs = Asset.objects.filter(id=self.asset.id)
        author = User.objects.get(username='******')

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs,
                                                    author,
                                                    visible_authors)
        self.assertEquals(notes.count(), 2)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)

    def test_filter_no_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        notes = SherdNote.objects.get_related_notes(qs, None, [])
        self.assertEquals(notes.count(), 6)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)
        self.assertEquals(notes[2], self.ga2)
        self.assertEquals(notes[3], self.note2)
        self.assertEquals(notes[4], self.ga3)
        self.assertEquals(notes[5], self.note3)

    def test_filter_by_visible_authors(self):
        qs = Asset.objects.filter(id=self.asset.id)

        names = ['instructor_one', 'instructor_two', 'student_one']
        users = User.objects.filter(username__in=names).values_list('id')
        visible_authors = users.values_list('id', flat=True)

        notes = SherdNote.objects.get_related_notes(qs,
                                                    None,
                                                    visible_authors)
        self.assertEquals(notes.count(), 4)

        self.assertEquals(notes[0], self.ga1)
        self.assertEquals(notes[1], self.note1)
        self.assertEquals(notes[2], self.ga3)
        self.assertEquals(notes[3], self.note3)

    def test_filter_by_tags(self):
        notes = SherdNote.objects.filter_by_tags('student_one_selection')
        self.assertEquals(notes.count(), 1)
        self.assertEquals(notes[0], self.note1)

        notes = SherdNote.objects.filter(asset=self.asset)
        self.assertEquals(notes.count(), 6)

        notes = notes.filter_by_tags(
            'student_two_selection,image').order_by('id')
        self.assertEquals(notes.count(), 2)
        self.assertEquals(notes[0], self.note2)
        self.assertEquals(notes[1], self.note3)