def test_can_determine_unread_forums(self): # Setup def get_rendered(topics, user): request = self.get_request() request.user = user ForumPermissionMiddleware().process_request(request) t = Template(self.loadstatement + '{% get_unread_topics topics request.user as unread_topics %}') c = Context({'topics': topics, 'request': request}) rendered = t.render(c) return c, rendered # Run & check context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_2.topics.all()) # forum_2 topics are now read TopicReadTrackFactory.create(topic=self.forum_2_topic, user=self.u2) context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert not len(context['unread_topics']) # A new post is created with a pre-existing topic track PostFactory.create(topic=self.forum_2_topic, poster=self.u1) context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_2.topics.all()) # A new post is created with a pre-existing forum track ForumReadTrackFactory.create(forum=self.forum_1, user=self.u2) PostFactory.create(topic=self.forum_1_topic, poster=self.u1) context, rendered = get_rendered(self.forum_1.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_1.topics.all())
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user, status=Topic.TOPIC_LOCKED) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_reply_to_topics', self.user, self.top_level_forum) assign_perm('can_edit_own_posts', self.user, self.top_level_forum) assign_perm('can_delete_own_posts', self.user, self.top_level_forum) assign_perm('can_edit_posts', self.user, self.top_level_forum) assign_perm('can_post_announcements', self.user, self.top_level_forum)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user, type=Topic.TYPE_CHOICES.topic_post, status=Topic.STATUS_CHOICES.topic_locked) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_reply_to_topics', self.user, self.top_level_forum) assign_perm('can_edit_own_posts', self.user, self.top_level_forum) assign_perm('can_delete_own_posts', self.user, self.top_level_forum) assign_perm('can_edit_posts', self.user, self.top_level_forum)
def test_can_determine_unread_forums(self): # Setup def get_rendered(forums, user): request = self.get_request() request.user = user ForumPermissionMiddleware().process_request(request) t = Template(self.loadstatement + '{% get_unread_forums forums request.user as unread_forums %}') c = Context({'forums': forums, 'request': request}) rendered = t.render(c) return c, rendered # Run & check context, rendered = get_rendered(Forum.objects.all(), self.u2) assert rendered == '' assert set(context['unread_forums']) == set([self.top_level_cat, self.forum_1, self.forum_2, ]) # forum_1 and forum_2 are now read ForumReadTrackFactory.create(forum=self.forum_1, user=self.u2) ForumReadTrackFactory.create(forum=self.forum_2, user=self.u2) context, rendered = get_rendered(Forum.objects.all(), self.u2) assert rendered == '' assert not len(context['unread_forums']) # A new post is created PostFactory.create(topic=self.forum_2_topic, poster=self.u1) context, rendered = get_rendered(Forum.objects.all(), self.u2) assert rendered == '' assert set(context['unread_forums']) == set([self.forum_2, self.top_level_cat])
def setup(self): # Create a basic user self.user = UserFactory.create() # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.cat = create_category_forum() self.top_level_forum = create_forum() self.other_forum = create_forum() self.link = create_link_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_reply_to_topics', self.user, self.top_level_forum) assign_perm('can_edit_own_posts', self.user, self.top_level_forum) assign_perm('can_delete_own_posts', self.user, self.top_level_forum) assign_perm('can_lock_topics', self.user, self.top_level_forum)
def setup(self): # Create a basic user self.user = UserFactory.create() # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.cat = create_category_forum() self.top_level_forum = create_forum() self.other_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_reply_to_topics', self.user, self.top_level_forum) assign_perm('can_edit_own_posts', self.user, self.top_level_forum) assign_perm('can_delete_own_posts', self.user, self.top_level_forum) assign_perm('can_lock_topics', self.user, self.top_level_forum)
def test_can_determine_unread_forums(self): # Setup def get_rendered(user): request = self.get_request() request.user = user ForumPermissionMiddleware().process_request(request) t = Template( self.loadstatement + '{% get_unread_forums request.user as unread_forums %}') c = Context({'request': request}) rendered = t.render(c) return c, rendered # Run & check context, rendered = get_rendered(self.u2) assert rendered == '' assert set(context['unread_forums']) \ == set([self.top_level_cat, self.forum_1, self.forum_2, ]) # forum_1 and forum_2 are now read ForumReadTrackFactory.create(forum=self.forum_1, user=self.u2) ForumReadTrackFactory.create(forum=self.forum_2, user=self.u2) context, rendered = get_rendered(self.u2) assert rendered == '' assert not len(context['unread_forums']) # A new post is created PostFactory.create(topic=self.forum_2_topic, poster=self.u1) context, rendered = get_rendered(self.u2) assert rendered == '' assert set(context['unread_forums']) == set( [self.forum_2, self.top_level_cat])
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user, status=Topic.TOPIC_LOCKED) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user, approved=False) self.anonymous_post = (PostFactory.create(topic=self.topic, anonymous_key='1234', poster=None, approved=False)) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_approve_posts', self.user, self.top_level_forum)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic( forum=self.top_level_forum, poster=self.user, status=Topic.TOPIC_LOCKED) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user, approved=False) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_approve_posts', self.user, self.top_level_forum)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic( forum=self.top_level_forum, poster=self.user, status=Topic.STATUS_CHOICES.topic_locked) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_approve_posts', self.user, self.top_level_forum)
def setup(self): self.u1 = UserFactory.create() self.u2 = UserFactory.create() self.top_level_cat_1 = create_category_forum() self.top_level_cat_2 = create_category_forum() self.forum_1 = create_forum(parent=self.top_level_cat_1) self.forum_2 = create_forum(parent=self.top_level_cat_1) self.forum_2_child_1 = create_link_forum(parent=self.forum_2) self.forum_2_child_2 = create_forum(parent=self.forum_2) self.forum_3 = create_forum(parent=self.top_level_cat_1) self.forum_4 = create_forum(parent=self.top_level_cat_2) self.topic = create_topic(forum=self.forum_2, poster=self.u1) PostFactory.create(topic=self.topic, poster=self.u1) # Initially u2 read the previously created topic ForumReadTrackFactory.create(forum=self.forum_2, user=self.u2)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Creates a poll and two options self.poll = TopicPollFactory.create(topic=self.topic) self.option_1 = TopicPollOptionFactory.create(poll=self.poll) self.option_2 = TopicPollOptionFactory.create(poll=self.poll) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_vote_in_polls', self.user, self.top_level_forum)
def setup(self): # Add some users self.u1 = UserFactory.create() self.u2 = UserFactory.create() self.g1 = GroupFactory.create() self.u1.groups.add(self.g1) self.u2.groups.add(self.g1) self.user.groups.add(self.g1) # Permission handler self.perm_handler = PermissionHandler() # Tracking handler self.tracks_handler = TrackingHandler() self.top_level_cat_1 = create_category_forum() self.top_level_cat_2 = create_category_forum() self.forum_1 = create_forum(parent=self.top_level_cat_1) self.forum_2 = create_forum(parent=self.top_level_cat_1) self.forum_2_child_1 = create_forum(parent=self.forum_2) self.forum_3 = create_forum(parent=self.top_level_cat_1) self.forum_4 = create_forum(parent=self.top_level_cat_2) self.topic = create_topic(forum=self.forum_2, poster=self.u1) PostFactory.create(topic=self.topic, poster=self.u1) # Initially u2 and user read the previously created topic ForumReadTrackFactory.create(forum=self.forum_2, user=self.u2) ForumReadTrackFactory.create(forum=self.forum_2, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.g1, self.top_level_cat_1) assign_perm('can_read_forum', self.g1, self.top_level_cat_2) assign_perm('can_read_forum', self.g1, self.forum_1) assign_perm('can_read_forum', self.g1, self.forum_2) assign_perm('can_read_forum', self.g1, self.forum_2_child_1) assign_perm('can_read_forum', self.g1, self.forum_4)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user, status=Topic.STATUS_CHOICES.topic_locked) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user, approved=False) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_approve_posts', self.user, self.top_level_forum)
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Set up an attachment f = open(settings.MEDIA_ROOT + '/attachment.jpg', 'rb') self.attachment_file = File(f) self.attachment = AttachmentFactory.create(post=self.post, file=self.attachment_file) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_download_file', self.user, self.top_level_forum) yield # teardown # -- self.attachment_file.close() attachments = Attachment.objects.all() for attachment in attachments: try: attachment.file.delete() except: pass
def test_can_determine_unread_forums(self): # Setup def get_rendered(topics, user): request = self.get_request() request.user = user ForumPermissionMiddleware().process_request(request) t = Template( self.loadstatement + '{% get_unread_topics topics request.user as unread_topics %}') c = Context({'topics': topics, 'request': request}) rendered = t.render(c) return c, rendered # Run & check context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_2.topics.all()) # forum_2 topics are now read TopicReadTrackFactory.create(topic=self.forum_2_topic, user=self.u2) context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert not len(context['unread_topics']) # A new post is created with a pre-existing topic track PostFactory.create(topic=self.forum_2_topic, poster=self.u1) context, rendered = get_rendered(self.forum_2.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_2.topics.all()) # A new post is created with a pre-existing forum track ForumReadTrackFactory.create(forum=self.forum_1, user=self.u2) PostFactory.create(topic=self.forum_1_topic, poster=self.u1) context, rendered = get_rendered(self.forum_1.topics.all(), self.u2) assert rendered == '' assert set(context['unread_topics']) == set(self.forum_1.topics.all())
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic(forum=self.top_level_forum, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Set up an attachment f = open(settings.MEDIA_ROOT + '/attachment.jpg', 'rb') self.attachment_file = File(f) self.attachment = AttachmentFactory.create( post=self.post, file=self.attachment_file) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_download_file', self.user, self.top_level_forum) yield # teardown # -- self.attachment_file.close() attachments = Attachment.objects.all() for attachment in attachments: try: attachment.file.delete() except: pass
def setup(self): # Permission handler self.perm_handler = PermissionHandler() # Set up a top-level forum self.top_level_forum = create_forum() # Set up a topic and some posts self.topic = create_topic( forum=self.top_level_forum, poster=self.user, status=Topic.TOPIC_LOCKED) self.first_post = PostFactory.create(topic=self.topic, poster=self.user) self.post = PostFactory.create(topic=self.topic, poster=self.user) # Mark the forum as read ForumReadTrackFactory.create(forum=self.top_level_forum, user=self.user) # Assign some permissions assign_perm('can_read_forum', self.user, self.top_level_forum) assign_perm('can_reply_to_topics', self.user, self.top_level_forum) assign_perm('can_edit_own_posts', self.user, self.top_level_forum) assign_perm('can_delete_own_posts', self.user, self.top_level_forum) assign_perm('can_edit_posts', self.user, self.top_level_forum) assign_perm('can_post_announcements', self.user, self.top_level_forum)