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)
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())
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
def setUpTestData(cls): call_command("loadconstants") cls.user = testdata.user() cls.channel = testdata.channel() cls.channel.viewers.add(cls.user)
def setUp(self): super(SyncTestCase, self).setUp() self.channel = testdata.channel() self.user = testdata.user() self.channel.editors.add(self.user)
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("*****@*****.**")
def public_channel(self): channel = testdata.channel() channel.public = True channel.save() return channel
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)