Exemplo n.º 1
0
    def test_filter_view_queryset__private_channel__anonymous(self):
        channel = testdata.channel()
        node_file = create_file(channel.main_tree_id)

        queryset = File.filter_view_queryset(self.base_queryset,
                                             user=self.anonymous_user)
        self.assertQuerysetDoesNotContain(queryset, pk=node_file.id)
Exemplo n.º 2
0
    def test_update_channelset_channels_no_permission(self):
        channelset = models.ChannelSet.objects.create(
            **self.channelset_db_metadata)
        channelset.editors.add(self.user)

        channel1 = testdata.channel()

        channel1.save()

        self.client.force_authenticate(user=self.user)
        response = self.client.post(
            self.sync_url,
            [
                generate_update_event(
                    channelset.id,
                    CHANNELSET,
                    {"channels.{}".format(channel1.id): True},
                )
            ],
            format="json",
        )
        self.assertEqual(response.status_code, 400, response.content)
        self.assertFalse(
            models.ChannelSet.objects.get(
                id=channelset.id).secret_token.channels.filter(
                    id=channel1.id).exists())
Exemplo n.º 3
0
    def test_filter_edit_queryset__private_channel__anonymous(self):
        channel = testdata.channel()
        assessment_file = create_assessment_item_file(channel.main_tree_id)

        queryset = File.filter_edit_queryset(self.base_queryset,
                                             user=self.anonymous_user)
        self.assertQuerysetDoesNotContain(queryset, pk=assessment_file.id)
Exemplo n.º 4
0
    def test_filter_edit_queryset__private_channel__anonymous(self):
        channel = testdata.channel()
        contentnode = create_contentnode(channel.main_tree_id)

        queryset = ContentNode.filter_edit_queryset(self.base_queryset,
                                                    user=self.anonymous_user)
        self.assertQuerysetDoesNotContain(queryset,
                                          pk=settings.ORPHANAGE_ROOT_ID)
        self.assertQuerysetDoesNotContain(queryset, pk=contentnode.id)
Exemplo n.º 5
0
    def test_filter_view_queryset__private_channel__pending_editor(self):
        channel = testdata.channel()

        user = testdata.user()
        queryset = Channel.filter_view_queryset(self.base_queryset, user=user)
        self.assertQuerysetDoesNotContain(queryset, pk=channel.id)

        Invitation.objects.create(email=user.email, channel=channel)
        queryset = Channel.filter_view_queryset(self.base_queryset, user=user)
        self.assertQuerysetContains(queryset, pk=channel.id)
Exemplo n.º 6
0
 def test_create_channelset_no_channel_permission(self):
     self.client.force_authenticate(user=self.user)
     new_channel = testdata.channel()
     channelset = self.channelset_metadata
     channelset["channels"] = {new_channel.id: True}
     response = self.client.post(
         reverse("channelset-list"),
         channelset,
         format="json",
     )
     self.assertEqual(response.status_code, 400, response.content)
Exemplo n.º 7
0
    def test_filter_view_queryset__private_channel(self):
        channel = testdata.channel()

        queryset = Channel.filter_view_queryset(self.base_queryset,
                                                user=self.forbidden_user)
        self.assertQuerysetDoesNotContain(queryset, pk=channel.id)

        user = testdata.user()
        channel.viewers.add(user)
        queryset = Channel.filter_view_queryset(self.base_queryset, user=user)
        self.assertQuerysetContains(queryset, pk=channel.id)
Exemplo n.º 8
0
 def test_create_invitation_no_channel_permission(self):
     self.client.force_authenticate(user=self.user)
     new_channel = testdata.channel()
     invitation = self.invitation_metadata
     invitation["channel"] = new_channel.id
     response = self.client.post(
         reverse("invitation-list"),
         invitation,
         format="json",
     )
     self.assertEqual(response.status_code, 400, response.content)
Exemplo n.º 9
0
    def test_update_file_no_node_permission(self):
        file = models.File.objects.create(**self.file_db_metadata)
        new_channel = testdata.channel()
        new_channel_node = new_channel.main_tree.get_descendants().first().id

        self.client.force_authenticate(user=self.user)
        response = self.client.patch(
            reverse("file-detail", kwargs={"pk": file.id}),
            {"contentnode": new_channel_node},
            format="json",
        )
        self.assertEqual(response.status_code, 400, response.content)
Exemplo n.º 10
0
    def test_filter_view_queryset__private_channel(self):
        channel = testdata.channel()
        assessment_file = create_assessment_item_file(channel.main_tree_id)

        queryset = File.filter_view_queryset(self.base_queryset,
                                             user=self.forbidden_user)
        self.assertQuerysetDoesNotContain(queryset, pk=assessment_file.id)

        user = testdata.user()
        channel.viewers.add(user)
        queryset = File.filter_view_queryset(self.base_queryset, user=user)
        self.assertQuerysetContains(queryset, pk=assessment_file.id)
Exemplo n.º 11
0
    def test_update_file_no_assessmentitem_permission(self):
        file = models.File.objects.create(**self.file_db_metadata)
        new_channel = testdata.channel()
        new_channel_exercise = (new_channel.main_tree.get_descendants().filter(
            kind_id=content_kinds.EXERCISE).first())
        new_channel_assessmentitem = new_channel_exercise.assessment_items.first(
        ).id

        self.client.force_authenticate(user=self.user)
        response = self.client.patch(
            reverse("file-detail", kwargs={"pk": file.id}),
            {"assessment_item": new_channel_assessmentitem},
            format="json",
        )
        self.assertEqual(response.status_code, 400, response.content)
Exemplo n.º 12
0
 def test_create_assessmentitem_no_node_permission(self):
     self.client.force_authenticate(user=self.user)
     new_channel = testdata.channel()
     new_channel_exercise = (
         new_channel.main_tree.get_descendants()
         .filter(kind_id=content_kinds.EXERCISE)
         .first()
         .id
     )
     assessmentitem = self.assessmentitem_metadata
     assessmentitem["contentnode"] = new_channel_exercise
     response = self.client.post(
         reverse("assessmentitem-list"), assessmentitem, format="json",
     )
     self.assertEqual(response.status_code, 400, response.content)
Exemplo n.º 13
0
    def test_filter_view_queryset__private_channel(self):
        channel = testdata.channel()
        contentnode = create_contentnode(channel.main_tree_id)

        queryset = ContentNode.filter_view_queryset(self.base_queryset,
                                                    user=self.forbidden_user)
        self.assertQuerysetDoesNotContain(queryset,
                                          pk=settings.ORPHANAGE_ROOT_ID)
        self.assertQuerysetDoesNotContain(queryset, pk=contentnode.id)

        user = testdata.user()
        channel.viewers.add(user)
        queryset = ContentNode.filter_view_queryset(self.base_queryset,
                                                    user=user)
        self.assertQuerysetDoesNotContain(queryset,
                                          pk=settings.ORPHANAGE_ROOT_ID)
        self.assertQuerysetContains(queryset, pk=contentnode.id)
Exemplo n.º 14
0
    def test_create_clipboard_with_parent(self):
        channel = testdata.channel()
        channel.editors.add(self.user)
        self.client.force_authenticate(user=self.user)
        clipboard = self.clipboard_metadata
        clipboard["parent"] = channel.main_tree_id
        response = self.client.post(
            self.sync_url,
            [generate_create_event(clipboard["id"], CLIPBOARD, clipboard)],
            format="json",
        )
        self.assertEqual(response.status_code, 200, response.content)
        try:
            new_node = models.ContentNode.objects.get(id=clipboard["id"])
        except models.ContentNode.DoesNotExist:
            self.fail("ContentNode was not created")

        self.assertEqual(new_node.parent_id, channel.main_tree_id)
Exemplo n.º 15
0
 def setUpTestData(cls):
     call_command("loadconstants")
     cls.user = testdata.user()
     cls.channel = testdata.channel()
     cls.channel.viewers.add(cls.user)
Exemplo n.º 16
0
 def setUp(self):
     super(SyncTestCase, self).setUp()
     self.channel = testdata.channel()
     self.user = testdata.user()
     self.channel.editors.add(self.user)
Exemplo n.º 17
0
 def setUp(self):
     super(SyncTestCase, self).setUp()
     self.channel = testdata.channel()
     self.user = testdata.user()
     self.channel.editors.add(self.user)
     self.invited_user = testdata.user("*****@*****.**")
Exemplo n.º 18
0
 def public_channel(self):
     channel = testdata.channel()
     channel.public = True
     channel.save()
     return channel
Exemplo n.º 19
0
    def test_filter_edit_queryset__private_channel__anonymous(self):
        channel = testdata.channel()

        queryset = Channel.filter_edit_queryset(self.base_queryset,
                                                user=self.anonymous_user)
        self.assertQuerysetDoesNotContain(queryset, pk=channel.id)