Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_topic_active_view_dont_show_private_or_removed(self):
"""
dont show private topics or removed
"""
category = utils.create_category()
category_removed = utils.create_category(is_removed=True)
subcategory = utils.create_category(parent=category_removed)
subcategory_removed = utils.create_category(parent=category, is_removed=True)
utils.create_private_topic()
utils.create_topic(category=category, is_removed=True)
utils.create_topic(category=category_removed)
utils.create_topic(category=subcategory)
utils.create_topic(category=subcategory_removed)
response = self.client.get(reverse('spirit:topic:index-active'))
self.assertEqual(list(response.context['topics']), [])
def test_private_created_list_order_topics(self):
"""
private topic created list ordered by last active
"""
private_a = utils.create_private_topic(user=self.user)
private_b = utils.create_private_topic(user=self.user)
private_c = utils.create_private_topic(user=self.user)
private_a.delete()
private_b.delete()
private_c.delete()
Topic.objects.filter(pk=private_a.topic.pk).update(last_active=timezone.now() - datetime.timedelta(days=10))
Topic.objects.filter(pk=private_c.topic.pk).update(last_active=timezone.now() - datetime.timedelta(days=5))
utils.login(self)
response = self.client.get(reverse('spirit:topic:private:index-author'))
self.assertEqual(list(response.context['topics']), [private_b.topic, private_c.topic, private_a.topic])
def test_private_topic_publish_count(self):
"""
Creating a private topic does not update the profile topic_count and comment_count
"""
utils.create_private_topic(user=self.user)
self.assertEqual(UserProfile.objects.get(pk=self.user.st.pk).topic_count, 0)
self.assertEqual(UserProfile.objects.get(pk=self.user.st.pk).comment_count, 0)
def test_private_access_create(self):
"""
private topic access creation
"""
utils.login(self)
private = utils.create_private_topic(user=self.user)
utils.create_comment(topic=private.topic)
form_data = {'user': self.user2.username, }
response = self.client.post(reverse('spirit:topic:private:access-create', kwargs={'topic_id': private.topic.pk, }),
form_data)
expected_url = private.get_absolute_url()
self.assertRedirects(response, expected_url, status_code=302)
self.assertEqual(len(TopicPrivate.objects.filter(user=self.user2, topic=private.topic)), 1)
def test_profile_topics_dont_show_removed_or_private(self):
"""
dont show private topics or removed
"""
Topic.objects.all().delete()
category = utils.create_category()
category_removed = utils.create_category(is_removed=True)
subcategory = utils.create_category(parent=category_removed)
subcategory_removed = utils.create_category(parent=category, is_removed=True)
utils.create_private_topic(user=self.user2)
utils.create_topic(category=category, user=self.user2, is_removed=True)
utils.create_topic(category=category_removed, user=self.user2)
utils.create_topic(category=subcategory, user=self.user2)
utils.create_topic(category=subcategory_removed, user=self.user2)
utils.login(self)
response = self.client.get(reverse(
"spirit:user:topics",
kwargs={'pk': self.user2.pk, 'slug': self.user2.st.slug}))
self.assertEqual(list(response.context['topics']), [])
def test_topic_notification_create_no_access(self):
"""
raise Http404 if topic is private and user has no access
"""
private = utils.create_private_topic()
utils.login(self)
form_data = {'is_active': True, }
response = self.client.post(
reverse(
'spirit:topic:notification:create',
kwargs={'topic_id': private.topic.pk, }),
form_data)
self.assertEqual(response.status_code, 404)
def test_private_created_list_paginate(self):
"""
private topic created list paginated
"""
private = utils.create_private_topic(user=self.user)
private.delete()
private2 = utils.create_private_topic(user=self.user)
private2.delete()
utils.login(self)
response = self.client.get(reverse('spirit:topic:private:index-author'))
self.assertEqual(list(response.context['topics']), [private2.topic, ])
def test_private_join(self):
"""
re-join private topic if user is the creator
"""
private = utils.create_private_topic(user=self.user)
private.delete()
form_data = {}
form = TopicPrivateJoinForm(user=self.user, topic=private.topic, data=form_data)
self.assertTrue(form.is_valid())
private_topic = form.save()
self.assertEqual(private_topic.topic, private.topic)
self.assertEqual(private_topic.user, private.user)
# topic private exists
private = utils.create_private_topic(user=self.user)
form = TopicPrivateJoinForm(user=self.user, topic=private.topic, data=form_data)
self.assertFalse(form.is_valid())
def test_comment_update_moderator_private(self):
"""
moderators can not update comments in private topics they has no access
"""
UserProfile.objects.filter(user__pk=self.user.pk).update(is_moderator=True)
user = utils.create_user()
topic_private = utils.create_private_topic()
comment = utils.create_comment(user=user, topic=topic_private.topic)
utils.login(self)
form_data = {'comment': 'barfoo', }
response = self.client.post(reverse('spirit:comment:update', kwargs={'pk': comment.pk, }),
form_data)
self.assertEqual(response.status_code, 404)